Metadata support in a distributed scan system

ABSTRACT

Approaches are provided for processing scan data based on a scan process definition (SPD) that defines a set of instructions for acquiring image data based on one or more printed documents. An SPD may include extension data that is used to store additional data in association with the scan data. An SPD may include rights management data that is used to provide security to the scan data that is generated based on the SPD. An SPD may be used as a print process definition for dictating how print operations are to be performed. An SPD may be associated with data that identifies one or more scan devices that are prohibited from using the SPD. An SPD may be associated with access delegation data that indicates one or more users who have been delegated access to the SPD.

CROSS-REFERENCE TO RELATED APPLICATIONS; BENEFIT CLAIM

This application is a divisional of U.S. patent application Ser. No.13/786,455, filed Mar. 6, 2013, the entire contents of which is herebyincorporated by reference for all purposes as if fully set forth herein.The applicant(s) hereby rescind any disclaimer of claim scope in theparent application(s) or the prosecution history thereof and advise theUSPTO that the claims in this application may be broader than any claimin the parent application; which is related to:

U.S. patent application Ser. No. 13/786,456, entitled, “RIGHTSMANAGEMENT IN A DISTRIBUTED SCAN SYSTEM” filed Mar. 6, 2013; thecontents of which are incorporated by reference as if fully set forthherein.

U.S. patent application Ser. No. 13/786,458, entitled, “DISTRIBUTEDPRINT MANAGEMENT” filed Mar. 6, 2013, the contents of which areincorporated by reference as if fully set forth herein.

U.S. patent application Ser. No. 13/786,460, entitled, “DEVICEMANAGEMENT IN A DISTRIBUTED SCAN SYSTEM” filed Mar. 6, 2013, thecontents of which are incorporated by reference as if fully set forthherein.

U.S. patent application Ser. No. 13/786,461, entitled, “DELEGATE ACCESSIN A DISTRIBUTED SCAN SYSTEM” filed Mar. 6, 2013, the contents of whichare incorporated by reference as if fully set forth herein.

FIELD

Embodiments relate generally to distributed scan management, and morespecifically, to extending the capabilities of scanning in an enterpriseenvironment.

BACKGROUND

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, theapproaches described in this section may not be prior art to the claimsin this application and are not admitted to be prior art by inclusion inthis section.

Managing network devices, especially in a large enterprise environment,has proven to be a difficult task. For example, system administratorswho manage network devices, such as scan devices and print devices, maydesire to monitor use of the network devices, to restrict access tocertain network devices, and to provide security to data that isgenerated by the network devices. Current approaches lack many featuresthat would increase versatility and usability of the network devices.

SUMMARY

Approaches are described for processing scan process definitions. In oneembodiment, user identification data that identifies a user of a scandevice is received at the scan device. Data that at least identifies oneor more scan process definitions that correspond to the useridentification data is retrieved. One or more graphical user interfaceobjects that correspond to the one or more scan process definitions arecaused to be displayed on a user interface of the scan device. Userinput that indicates a selection of a particular user interface objectfrom the one or more user interface objects is received via the userinterface. Scan settings data, destination data, and extension data isidentified in a particular scan process definition that corresponds tothe particular user interface object. At least one or more of thefollowing is performed: a) retrieving data from an external source basedupon the extension data and transmitting, to a device that is separatefrom the scan device, scan data that is generated based on the scansettings data and at least a portion of the data retrieved from theexternal source, b) using the extension data to generate a graphicaluser interface and receive user input via the graphical user interfaceand transmitting to the device that is separate from the scan device,the scan data and at least a portion of the user input, or c) sending,to the device that is separate from the scan device, the scan data andat least a portion of the extension data.

In another embodiment, a graphical user interface (GUI) is generated onan administrator device that has access rights to an active directoryserver. The GUI allows a user to specify extension data, generate a scanprocess definition that includes at least the extension data, scansettings data, and destination data that indicates one or moredestinations to which scan data generated, based upon the scan settingsdata, on a scan device that is different than the administrator device,will be sent, and cause the scan process definition to be stored on theactive directory server. The extension data specifies one or more ofpost-scan processing to be performed on the scan data or device settingsto be used by the scan device during scanning or printing.

BRIEF DESCRIPTION OF THE DRAWINGS

In the figures of the accompanying drawings like reference numeralsrefer to similar elements.

FIG. 1 is a block diagram that depicts an example distributed scanmanagement system, in an embodiment;

FIG. 2 is a diagram that depicts an example graphical user interfaceallows a user to select or create a new scan process definition, in anembodiment;

FIG. 3 is a block diagram that depicts an example overview of contentsof a scan process definition, in an embodiment;

FIG. 4 is a diagram that depicts an example graphical user interfacethat allows a user to specify settings that will be used by a scandevice to perform a scan operation with respect to one or more printeddocuments, in an embodiment;

FIG. 5 is a diagram that depicts an example graphical user interfacethat allows an administrator to specify one or more destinations towhich scan data is to be sent, in an embodiment;

FIG. 6 is a diagram that depicts an example graphical user interfacethat allows an administrator to specify one or more users and/or one ormore groups that are allowed to access the corresponding scan processdefinition, in an embodiment;

FIG. 7 depicts an example scan process definition, in an embodiment;

FIG. 8 is a flow diagram that depicts a process for processing a scanjob in a distributed scan management system, in an embodiment;

FIG. 9 depicts an example scan process definition that includesextension data, in an embodiment;

FIG. 10 depicts an example scan process definition that includes rightsmanagement data, in an embodiment;

FIG. 11 is a block diagram that depicts a distributed scan managementsystem that is associated with a rights management service, in anembodiment;

FIG. 12 is a sequence diagram that depicts a process for utilizingrights management data at a scan device, in an embodiment;

FIG. 13 is a block diagram that depict a distributed scan managementsystem that is associated with a rights management service, in anembodiment;

FIG. 14 is a sequence diagram that depicts a process for utilizingrights management data at a scan device, in an embodiment;

FIG. 15 is a block diagram that depicts a distributed print management(DPM) system, in an embodiment;

FIG. 16 depicts an example scan process definition that includes devicemanagement data, in an embodiment;

FIG. 17 is a block diagram that depicts an example distributed scanmanagement (DSM) system that includes multiple scan devices, in anembodiment;

FIG. 18 is a sequence diagram that depicts a process for creating andusing device management data, in an embodiment;

FIG. 19 is a sequence diagram that depicts a process for enforcingrestrictions device management data prior to performing a scanoperation, in an embodiment;

FIG. 20 is a sequence diagram that depicts a process for enforcingdevice management data prior to performing a scan operation, in anembodiment;

FIG. 21 depicts an example scan process definition that includes accessdelegation data, in an embodiment;

FIG. 22 is a sequence diagram that depicts a process for enforcingaccess delegation data at a definition server, in an embodiment.

FIG. 23 is a sequence diagram that depicts a process for enforcingaccess delegation data at a scan device, in an embodiment.

FIG. 24 is a sequence diagram that depicts a process for enforcingaccess delegation data at a scan device, in an embodiment.

FIG. 25 is a block diagram that depicts an example computer system uponwhich embodiments may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the embodiments. It will be apparent, however, to oneskilled in the art that the embodiments may be practiced without thesespecific details. In other instances, well-known structures and devicesare shown in block diagram form in order to avoid unnecessarilyobscuring the embodiments.

I. OVERVIEW

II. SYSTEM ARCHITECTURE

-   -   A. ADMINISTRATOR TERMINAL    -   B. SCAN PROCESS DEFINITION        -   1. SCAN SETTING DATA        -   2. DESTINATION DATA        -   3. USER ACCESS RIGHT DATA        -   4. EXTENSION DATA        -   5. EXAMPLE DEFINITION    -   C. DEFINITION SERVER    -   D. SCAN DEVICE    -   E. SCAN SERVER    -   F. EXAMPLE PROCESS

III. METADATA SUPPORT

-   -   A. EXTENSION DATA    -   B. PROCESSING EXTENSION DATA        -   1. EXTERNAL SOURCE            -   i) EXAMPLE SCENARIO        -   2. USER INPUT        -   3. PASS THROUGH DATA

IV. RIGHTS MANAGEMENT SERVICE

-   -   A. SOURCES OF RIGHTS MANAGEMENT DATA    -   B. PRE-SCAN SERVER APPROACH    -   B. POST-SCAN SERVER APPROACH

V. EXTEND SCAN MANAGEMENT SYSTEM FOR PRINTING

-   -   A. ADMINISTRATOR TERMINAL    -   B. PRINT PROCESS DEFINITION    -   C. DEFINITION SERVER    -   D. PRINT DEVICE    -   E. PRINT SERVER    -   F. SERVICES THAT LEVERAGE PRINT JOB COMPLETION DATA    -   G. EXTENDING SCAN MANAGEMENT SYSTEM TO OTHER CONTEXTS

VI. DEVICE MANAGEMENT

-   -   A. DEVICE MANAGEMENT DATA    -   B. STORING DEVICE MANAGEMENT DATA    -   C. PROCESSING DEVICE MANAGEMENT DATA        -   1. POST-SCAN PROCESSING OF DEVICE MANAGEMENT DATA        -   2. PRE-SCAN PROCESSING OF DEVICE MANAGEMENT DATA            -   i) DEFINITION SERVER PROCESSES DEVICE MANAGEMENT DATA            -   Ii) SCAN DEVICE PROCESSES DEVICE MANAGEMENT DATA

VII. DELEGATE ACCESS

-   -   A. ACCESS DELEGATION DATA        -   1. STORED IN A SCAN PROCESS DEFINITION        -   2. STORED SEPARATE FROM A SCAN PROCESS DEFINITION    -   B. PROCESSING ACCESS DELEGATION DATA        -   1. DEFINITION SERVER ENFORCES ACCESS DELEGATION DATA        -   2. SCAN DEVICE ENFORCES ACCESS DELEGATION DATA

VIII. IMPLEMENTATION MECHANISMS

I. Overview

Techniques are provided for extending the functionality of a distributedscan management (DSM) system. The DSM system involves the use of scanprocess definitions, each of which defines a set of instructions foracquiring image data. A scan process definition may also include useraccess right data that indicates one or more users who are allowed touse the scan process definition when performing a scan operationrelative to one or more printed documents. A scan process definition mayalso include destination data that identifies one or more destinationsto which scan data (that is generated based on the scan processdefinition) is to be stored.

In one technique, a scan process definition includes extension data thatis used by a scan device to dictate what information is stored inassociation with scan data or how scan data is to be processed. Forexample, extension data indicates a source data that identifies a sourceto which a scan device is to send a request for information. The scandevice receives the requested information and associates the requestedinformation with scan data. As another example, a scan device reads theextension data and generates a user interface to prompt a user of thescan device to enter information, which is later associated with scandata that is generated at the scan device. As another example, the scandevice reads the extension data and associates the extension data withscan data that the scan device generates. The scan data and anyassociated data are sent to another device for further processing.

In another technique, a set of scan instructions includes rightsmanagement data that is used to provide security to scan data generatedby a scan device.

In another technique, a distributed print management (DPM) system isdescribed, which system leverages the concepts and principles of a DSMsystem. For example, a print process definition defines a set ofinstructions for performing a print operation with respect to print datathat represents an electronic document in order to generated one or moreprinted documents.

In another technique, a scan process definition is associated with a setof one or more scan devices that are allowed to use the scan processdefinition to perform a scan operation. Any scan device that is outsidethat set either is not allowed to use the scan process definition or hasone or more other restrictions associated with the scan processdefinition, such as when the scan process definition can be used, whatdestinations may receive scan data that is to be generated based on thescan process destination, and what scan settings in the scan processdefinition may be changed.

In another technique, access delegation data is associated with a scanprocess definition. The access delegation data is separate from any useraccess right data that might be associated with (e.g., included in) thescan process definition. The access delegation data is used to allow auser who is not otherwise allowed to use the scan process definition touse the scan process definition. However, one or more restrictions maybe applied in order to limit the functions or operations that can beperformed with respect to the scan process definition, such as whether adifferent destination may be specified, etc.

II. System Architecture

FIG. 1 is a block diagram that depicts an example distributed scanmanagement (DSM) system 100. DSM system 100 includes an administratorterminal 110, a scan process definition server 120 (or “definitionserver 120” for short), a scan device 130, and a scan server 140.Although only one scan device is depicted in FIG. 1, system 100 mayinclude multiple scan devices that are communicatively coupled todefinition server 120 and scan server 140.

A. Administrator Terminal

Administrator terminal 110 is a computing device that includes a scanmanagement console (SMC) 112 that is configured to allow a user oradministrator to define scan process definitions and/or edit existingscan process definitions. Example computing devices include, withoutlimitation, a server, a desktop computer, a laptop computer, or a tabletcomputer.

A scan process definition defines a set of instructions for acquiringand processing image data. A scan device uses a scan process definitionto perform a scan operation with respect to one or more printeddocuments. Scan process definitions are described in more detail below.

SMC 112 may be implemented in software, hardware, or any combination ofsoftware and hardware. In an embodiment, SMC 112 is part of theMicrosoft Management Console (MMC) Windows Server technology.

Administrator terminal 110 is communicatively coupled to definitionserver 120 and, optionally, to scan device 130 and/or scan server 140.Although administrator terminal 110 is depicted as directly connected todefinition server 120, one or more devices or networks may reside in theshortest communication path between administrator terminal 110 anddefinition server 120 and between administrator terminal 110 and scanserver 140.

Although not depicted, administrator terminal 110 may be communicativelycoupled to scan device 130. In such an embodiment, SMC 112 is configuredto discover scan devices in a network. As part of the discovery process,SMC 112 may retrieve, from a scan device, a status of the scan device,elements/capabilities of the scan device, and device configurationinformation of the scan device. After an administrator creates, for adiscovered scan device, a scan ticket (that indicates scan settings thatcan be used by the discovered scan device), SMC 112 may send the scanticket to the scan device and request the scan device to validate thescan ticket. If SMC 112 receives, from the scan device, validation datathat indicates that the scan ticket is valid, then SMC 112 causes a scanprocess definition that includes scan settings data from the scan ticketto be stored in definition server 120.

In an embodiment, SMC 112 implements a standard protocol to communicatewith scan device 130. A non-limiting example of a standard protocol isthe Distributed Scan Device Web Service (WS-DSD) protocol. This protocoluses a subset of the XML schema elements defined in the WS Scan Servicespecification. The various elements depicted in FIG. 1 may communicatewith each other either through direct communications links or via one ormore networks, for example, local area networks, wide area networks andpacket-switched networks, such as the Internet. In addition, the variouselements depicted in FIG. 1 may be implemented on one or more physicalcomputing devices that may vary depending upon a particularimplementation. As one non-limiting example, the administrative terminal110 and the definition server 120 may be co-located on the samecomputing device. As another non-limiting example, the administrativeterminal 110 and the scan server 140 may be co-located on a computingdevice.

FIG. 2 is a diagram that depicts an example graphical user interface 200provided by SMC 112 to allow a user to select or create a new scanprocess definition, in an embodiment. Interface 200 includes a directoryhierarchy frame 210, a folder contents frame 220, and an action frame230.

Directory hierarchy frame 210 includes items that correspond to foldersin a directory hierarchy 212. In this example, the directory hierarchy212 includes a folder entitled “Console Root” as the root directory, afolder entitled “Scan Management” as a subfolder of the root directory,and three sub-folders of the folder “Scan Management”: “ManagedScanners,” “Scan Processes,” and “Scan Servers.” In this example, thefolder “Scan Processes” is selected and items within that folder aredisplayed in folder contents frame 220.

Folder contents frame 220 includes 11 items, each of which correspondsto a different scan process definition.

Action frame 230 includes a list of actions that may be performed withrespect to a scan process definition or folder contents frame 220. Suchactions include adding a new scan process definition, refreshing frame220, and exporting scan process definitions listed in frame 220.

B. Scan Process Definition

FIG. 3 is a block diagram that depicts an example overview of contentsof a scan process definition 300, in an embodiment. Scan processdefinition 300 includes scan settings data 310, destination data 320,user access right data 330, and extension data 340. Scan processdefinition 300 may include other data, depending upon a particularimplementation.

1. Scan Settings Data

Scan settings data 310 indicates one or more image-acquisition settingsthat are used by scan device 130 to generate scan data. For example,scan device 130 may generate scan data by scanning one or more printeddocuments. As another example, the scan device 130 may generate scandata by receiving application data, e.g., a Word document, and generatescan data from the application data. In this example, scan settings data310 indicates a size of a file that results from performing a scanoperation, a color scheme (e.g., gray scale or color monochrome), andmultiple possible file formats of a file that results from performing ascan operation. In this example the possible file formats are JPEG,TIFF, and PDF. For example, if scan device 130 is not configured togenerate JPEG images, then scan device 130 may select TIFF (ifsupported) as the file format of generated scan data.

FIG. 4 is a diagram that depicts an example graphical user interface 400that is provided by SMC 112 and that allows a user to specify settingsthat will be used by a scan device (e.g., scan device 130) to perform ascan operation with respect to one or more printed documents, in anembodiment. Interface 400 includes five tabs: Name, Scan Ticket, ScanServer, Destinations, and Security. In interface 400, the Scan Tickettab has been selected. In this example, the Scan Ticket tab includes acolor format setting, a file type setting, and a resolution setting. Inthis example, the values for the three settings are, respectively, RGB24 bits, PDF/A (ISO 19005-1 compliant) and 200. For each setting, thereis an option that, when selected, indicates that a user, at a scandevice that uses this scan ticket, can change the values for thesettings.

2. Destination Data

Destination data 320 indicates one or more destinations for scan datathat scan device 130 generates based on scan settings data 310. In thisexample, destination data 320 indicates multiple destinations, whichinclude email (e.g., a particular email address), SharePoint (which isan example storage service that is outside scan management system 100),and network folder. Scan server 140 (described in more detail below)uses destination data 320 to determine where to store the scan data.

FIG. 5 is a diagram that depicts an example graphical user interface 500that is provided by SMC 112 and that allows an administrator to specifyone or more destinations to which scan data (that is to be generatedbased on the corresponding scan settings) is to be sent, in anembodiment. Interface 500 includes a text field that allows anadministrator to specify a name prefix for a scan document generated bya scan device based on the corresponding scan settings.

Interface 500 also includes options that allow an administrator tospecify one or more destinations. In this example, there are three typesof destinations: a network folder, an email, and a cloud storageservice. In a related embodiment, interface 500 allows an administratorto specify multiple network folders, not just one. Also, interface 500may allow an administrator to specify multiple email addresses, not justone. In this example, interface 500 also provides an option that, whenselected, allows a user at a scan device (e.g., scan device 130) toenter one or more email addresses when using the corresponding scanprocess definition to perform a scan operation.

Interface 500 also allows an “email me” option that, when selected,allows a user (at the scan device) to send a scan image/document to anemail account of the user. Email identification data that identifies anemail account of the user may be stored at definition server 120 andsent to scan device 130 in response to a request for a scan processdefinition from scan device 130. Alternatively, email identificationdata may be stored at scan device 130 and scan device 130 identifies theemail account when scan device 130 is about to use a scan processdefinition that has the “email me” option selected.

In an alternative embodiment, scan process definition 300 does notinclude destination data. In this embodiment, scan server 140 uses oneor more other criteria (described in more detail below) to determinewhere to store scan data.

3. User Access Right Data

User access right data 330 indicates who is allowed access to scanprocess definition 300. User access right data 330 may indicate thatanyone is able to use scan process definition 300, one or more groupsthat are allowed to use scan process definition 300, or one or moreindividuals who are allowed to use scan process definition 300. Thus, ifuser access right data 330 indicates “All,” then any indication ofgroups or individuals in user access right data 330 may be ignored. Useraccess right data 330 may indicate one or more groups and one or moreindividuals. Thus, for example, user access right data 330 may indicateuser1, user2, and group3 that comprises user1, user4, and user5. Usersmay be given access to multiple scan process definitions, eitherdirectly, or by association with groups.

FIG. 6 is a diagram that depicts an example graphical user interface 600that is provided by SMC 112 and that allows an administrator to specifyone or more users and/or one or more groups that are allowed to accessthe corresponding scan process definition, in an embodiment. In thisexample, the “Security” tab is selected. The “Security” tab includes twoframes: one frame for displaying a list of user/group names and anotherframe for specifying permissions for a particular user or group, such as“Full Control,” “Read Only,” and “Modify.” If “Read Only” is selectedfor a particular user that is allowed to access a scan processdefinition, then, if that user causes scan device 130 to send a requestto definition server 120 for the scan process definition, definitionserver 120 sends the scan process definition with the permission data toscan device 130. Based on the “Read Only” permission, scan device 130prevents the user from modifying any of the options or parameters in thescan process definition. If “Full Control” is selected for a particularuser that is allowed to access a scan process definition, then theparticular user is allowed to perform all operations (e.g., read, write,delete) on the scan process definition, including changing accesspermission. If “Modify” is selected for a particular user that isallowed to access a scan process definition, then the particular user isalso allowed to perform all operations (e.g., read, write, delete) onthe scan process definition, but is not allowed to change to any accesspermissions. For a particular permission, if both “Allow” and “Deny” areleft unchecked for a particular permission, then a default may be to“Deny” the “Full Control” and “Modify” permissions and to “Allow” the“Read” permission.

In a related embodiment, interface 600 allows an administrator tospecify permissions for a scan process definition at a lower level ofgranularity. For example, a user may be given permission to modify scansetting data, but may be given only read access to the destination dataand may be given no access to the user access right data of the scanprocess definition.

Interface 600 also includes an “Add” button that allows an administratorto add a new group name or user name to the list of user/group names anda “Remove” button that allows an administrator to remove or delete auser name or group name from the list of user/group names.

In an alternative embodiment, scan process definition 300 does notinclude user access right data 330. In this embodiment, definitionserver 120 (described in more detail below) uses one or more othercriteria (described in more detail below) to determine whether a user atscan device 130 is authorized to access scan process definition 300.

4. Optional Data

Returning to FIG. 3, extension data 340 is optional data that may or maynot be found in a scan process definition. As FIG. 3 depicts, extensiondata 340 may include many types of information, such as an invoicenumber, one or more details, a link, and a comment, each of which may bestored in association with scan data that is generated based on scansettings data 310. Additionally or alternatively, extension data 340 mayinclude instructions for scan device 130, for scan server 140, and/orfor another service outside of scan management system 100. Examples ofextension data 340 are provided below.

5. Example Definition

In an embodiment, a scan process definition is defined in an XML formatthat is interpretable by scan device 130. Thus, a scan processdefinition file may comprise an XML document that includes one or moreelements that correspond to the types of information describedpreviously; namely, an element for scan settings data, an element fordestination data, an element for user access right data, and an elementfor extension data.

FIG. 7 depicts an example scan process definition, in an embodiment. Thescan process definition includes (1) scan settings data that isspecified within the “ScanTicket” element and (2) destination data thatis specified within the “FiltersToProcess” element.

C. Definition Server

Definition server 120 is a computing device that comprises one or moreprocessors and one or more storage media for storing instructions which,when processed by the one or more processors, perform certainoperations. As noted previously, the functionality of administratorterminal 110 and definition server 120 may be co-located on the samecomputing device.

Definition server 120 stores scan process definitions. Definition server120 may store scan process definition data locally on definition server120, or remotely, depending upon a particular implementation. Definitionserver 120 may also store scan process identification data thatcorresponds to and identifies one or more scan process definitions.Definition server 120 is configured to respond to requests, from SMC112, for scan process definitions to edit at administrator terminal 110.For example, if an administrator at administrator terminal 110 desiresto change a storage location for scan data that is generated based on aparticular scan process definition, then the administrator causes SMC112 to send a request for the particular scan process definition, whichis then displayed via SMC 112. Through SMC 112, the administratorchanges the destination data indicated in the particular scan processdefinition to indicate a new storage location, such as an email addressor a network folder that was not indicated before in the particular scanprocess definition.

A non-limiting example implementation of definition server 120 isMicrosoft's Active Directory Server.

Definition server 120 may be configured to support versioning of processdefinitions. For example, definition server 120 may be configured tomaintain a current version of a scan process definition and one or moreprevious versions of the scan process definition and allow a SMC 112 torequest a particular version of a scan process definition. For example,SMC 112 may send a request for a list of identifiers that identify allthe scan process definitions stored by definition server 120. The listmay include (1) a definition name for a first scan process definitionand also include “v1” for that definition and (2) the same definitionname for a second scan process definition and also include a “v2” forthat definition. As another example, SMC 112 may be configured tospecify, in a request, a name or identifier (e.g., “Legal Dept”) of oneor more scan process definitions. If multiple scan process definitionsare associated with the name or identifier, then definition server 120sends a list that identifies or distinguishes each definition from theother definitions (e.g., via a “v1”, “v2”, etc. convention).

Definition server 120 is also configured to respond to requests, from ascan device (e.g., scan device 130), for scan process definitions. Arequest from a scan device includes data that definition server 120 usesto select one or more scan process definitions from among multiple scanprocess definitions. Such data may include identification data and/orauthentication data, such as a username and password that a userprovides in association with scan device 130. For example, a user entershis/her username and password using a keyboard provided by scan device130. In response to receiving the authentication data, definition server120 determines scan process definitions that are associated with theauthentication data. For example, definition server 120 may determineone or more scan process definitions that are directly associated withthe authentication data. In addition, definition server 120 maydetermine, based on the authentication data, whether the user isassociated with any groups. If so, definition server 120 identifies oneor more groups and then determines scan process definitions that areassociated with each group of the one or more identified groups.

In response to identifying one or more scan process definitions based ona request from scan device 130, definition server 120 provides scanprocess definition identification data to scan device 130. The scanprocess definition identification data identifies one or more scanprocess definitions. The scan process definition identification data mayinclude the actual one or more scan process definitions (scan ticket,destination, etc.) or may only identify the one or more scan processdefinitions. In case of the latter scenario, scan device 130 displays,on a display screen associated with scan device 130, data thatidentifies the one or more scan process definitions. The scan device 130allows a user to select a scan process definition identifier from amongone or more scan process definition identifiers. In response toreceiving input that selects a particular scan process definitionidentifier, scan device 130 sends, to definition server 120, selectiondata that identifies the scan process definition that the user selected.In response, definition server 120 sends the selected scan processdefinition to scan device 130.

D. Scan Device

Scan device 130 is a computing device that is configured to process scanjobs, each of which involves generating scan data based on one or morescan settings (indicated in the scan settings data of a scan processdefinition retrieved from definition server 120). Scan device 130 mayinclude one or more hardware, firmware and software elements that allowcertain operations to be performed by scan device 130, such as receivinguser input, communicating with definition server 120, performing a scanoperation, communicating with scan server 140, and storing data in localstorage.

Scan device 130 is not limited to devices that only perform scanning andscan device 130 may include other functionality. For example, scandevice 130 may be a multi-function peripheral (MFP) device that includesother capabilities, such as printing, faxing, archiving, etc.

Scan data generated by scan device 130 may include of a set of one ormore image files, each of which may be in any image format, such as PDFor TIFF.

Scan device 130 includes an interface that allows a user to initiate ascan job. The interface may comprise a display screen for displayingdata and selectable buttons for initiating a scan job. Scan device 130may include other buttons, some of which may be physical and others ofwhich may be graphical.

Scan device 130 may be configured to require user authentication beforea user is allowed to initiate a scan operation at scan device 130. Forexample, scan device 130 may have an attached badge reader that iscapable of reading authentication data from a badge of a user. Asanother example, the scan device 130 may query a user to enterauthentication data via a user interface of the scan device. The datamay be one or more values that scan device 130 reads and sends todefinition server 120 in order to authenticate the user.

After generating scan data based on a scan job, scan device 130 sendsthe scan data to scan server 140. Scan device 130 may send the scan datato scan server 140 based on destination data. The destination data mayidentify scan server 140 or may simply be an indication that the scandata is to be processed within system 100. The destination data may beindicated in the scan process definition that was used to create thescan data or may be specified by a user at scan device 130.

Alternatively, scan device 130 is configured to automatically send scandata (e.g., a set of one or more scan images) to scan server 140 oncethe scan data is generated.

In addition to scan data, scan device 130 may also send other data toscan server 140. Such data may include scan process definitionidentification data and/or destination data, describe in more detailbelow.

In an embodiment, scan device 130 uses a standard protocol tocommunicate with scan server 140. An example of the standard protocol isthe Distributed Scan Processing Web Service protocol. This protocol usesthe XML schema described in the Distributed Scan Processing Web ServiceSchema.

E. Scan Server

Scan server 140 is a computing device that comprises one or moreprocessors and storage media that stores instructions which, whenprocessed by the one or more processors, cause certain operations to beperformed. Alternatively, scan server 140 is a computing device thatcomprises special-purpose hardware logic for performing the operations.

Scan server 140 receives scan data from scan device 130 (and,optionally, one or more other scan devices, not depicted) and causes thescan data to be stored based on one or more criteria. The one or morecriteria may indicate where to store the scan data. For example, ifdestination data accompanies scan data from scan device 130, then scanserver 140 may send the scan data to one or more destinations indicatedin the destination data. Example destinations include a network folder(that is located in a network that is “local” to scan server 140), athird party storage service (that is located in a remote network), or aset of one or more email addresses. The destination data may indicateany combination of these example destinations. Furthermore, thedestination data may be supplied by a user at scan device 130, includedin a scan process definition retrieved from definition server 120, orboth. For example, (1) a user may enter a personal email address towhich scan server 140 is to send scan data and (2) a scan processdefinition that the user selects may include a name of a network folderto which scan server 140 is to store the scan data.

Alternatively, scan server 140 may be configured to store scan data fromscan jobs in the same location. Such an embodiment may be used for allscan jobs or only for scan jobs where no destination data accompaniesthe resulting scan data.

In an embodiment, prior to causing scan data to be stored at one or moredestinations, scan server 140 validates the scan process definition(referred to herein as the “received definition”) that includes the scansettings that were used to create the scan data. Validation may involvescan server 140 sending the received definition (i.e., received fromscan device 130) to definition server 120. Definition server 120determines whether the received definition matches a scan processdefinition (referred to herein as the “original definition”) thatdefinition server 120 provided to scan device 130. A “match” may be anexact match between the two scan process definitions. Alternatively, a“match” may be an exact match of one or more portion of the originaldefinition that have been designated as unalterable with thecorresponding one or more portions of the received definition.Validation of a scan process definition may be performed on an entirescan process definition, a portion of a scan process definition, or datathat represents a scan process definition. For example, scan server 140may send to definition server 120 hash data that represents a scanprocess definition. The definition server 120 compares the hash datareceived from scan server 140 to other hash data for the scan processdefinition.

If definition server 120 provides a response that indicates that thereceived definition matches the original definition, then scan server140 continues processing the scan data. Else, scan server 140 may send anotification to scan device 130 that the received definition identifiedis not valid. Also, scan server 140 might not cause the scan data to bestored at the appropriate or designated destination(s).

In an embodiment, scan server 140 maintains an event log that logsinformation regarding different scan jobs. The event log may store, foreach scan job, data that indicates one or more of what scan device wasinvolved, when the scan job was performed, which scan process definitionwas used, where the corresponding scan data is stored, who initiated thescan job, the type of error that occurred (if the scan job failed), scandata information (e.g., number of pages, total size in MB, paper size,etc.), and/or whether or which scan settings were modified by a user.The event log may be stored on the same device that executes the scanserver or on a separate device. An event manager that is separate fromthe scan server may be configured to manage event subscriptions, analyzethe event log to determine whether any events of interest have occurred,and, in response to determining that events of interest have occurred,transmit event notifications to one or more event sinks associated withthe relevant event subscriptions.

F. Example Process

FIG. 8 is a sequence diagram that depicts a process 800 for processing ascan job in a distributed scan management (DSM) system, in anembodiment. At step 805, an administrator uses SMC 112 to generate ascan process definition that includes scan settings data, destinationdata, user/group access rights, and post-scan instructions that will beprocessed by scan server 140. The destination data may identify scanserver 140.

At step 810, the scan process definition is transmitted to and stored bydefinition server 120.

At step 815, a user at scan device 130 provides authentication data toscan device 130.

At step 820, scan device 130 sends the user's authentication data todefinition server 120. Definition server 120 determines one or more scanprocess definitions that are associated with the user's authenticationdata.

At step 825, definition server 120 sends scan process identificationdata to scan device 130. The scan process definition data identifies theone or more scan process definitions that were determined by definitionserver 120 based on the user' authentication data. The scan processidentification data may include, for example, labels that were specifiedby an administrator that created the scan process definitions or may becomputer-generated labels that were generated based on informationprovided by the administrator.

At step 830, scan device 130 causes one or more user interface objectsto be displayed on a display screen of scan device 130. Each userinterface object corresponds to a scan process definition that isidentified in the scan process definition data. A user interface objectmay be implemented as, for example, a graphical button or a menu optionin a list of menu options.

At step 835, a user selects particular scan process definitionidentification data that corresponds to a scan process definition. Inthe situation where the scan process identification data includes scanprocess definition identifiers, each scan process definition identifiermay be associated with (a) a graphical button that is displayed on adisplay screen of scan device 130 or (b) a physical button that isadjacent to the display screen. Selection of a scan process definitionidentifier may, thus, involve selecting a button that is associated withthe identifier.

At step 840, scan device 130 sends the selected scan process definitionidentifier to definition server 120. The actual data that is sent todefinition server 120 may be different than the identifier that isdisplayed. For example, while a scan process definition identifier maybe a human-readable label (e.g., “CEO Def”) when the identifier isdisplayed, the actual data that is sent to definition server 120 may besomething entirely different, such as a code that corresponds to thescan process definition, e.g., “spd023988561.”

At step 845, definition server 120 sends the scan process definitionthat is identified by the selected scan process identifier to scandevice 130. In an embodiment, an authenticated user is allowed to modifyone or more portions of a scan process definition. For example, anauthenticated user may change (a) one or more of the scan settings inthe scan settings data of a scan process definition, (b) one or more ofthe post-scan instructions of the scan process definition, or (c) a scanserver to which scan data is to be sent. A scan process definition mayinclude modification data that indicates that the scan processdefinition (or only certain portion thereof) may be modified by a user.

At step 850, scan device 130 performs a scan operation using one or moreof the scan settings indicated in the scan process definition andgenerates scan data. For example, the scan data may represent one ormore printed documents scanned by the scan device 130.

At step 855, scan device 130 sends the scan data (e.g., one or more scanimages) to scan server 140 based on the destination data in the scanprocess definition. Scan device 130 may also send, to scan server 140,any post-scan instructions indicated in the scan process definition. Forexample, scan device 130 may send destination data that identifies oneor more destinations to which scan server 140 is to send the scan data.As another example, scan device 130 may send operation data thatidentifies one or more operations to be perform on the scan data beforecausing the scan data (or data generated therefrom) to be stored. Suchoperations may include optical character recognition (OCR) to generatetext data (e.g., a Word document), which is subsequently stored, andencryption to encrypt the scan data (or data generated therefrom).

In an alternative embodiment, instead of sending the scan data to scanserver 140, scan device 130 sends the scan data to an externalapplication (not depicted in FIG. 1) that is outside of scan managementsystem 100. In this embodiment, scan device 130 may also provideadditional information, such as instructions on how to process the scandata or extract data from the scan data. For example, scan device 130may instruct the external application to perform a OCR operation on thescan data in order to generate and stored editable text data. As anotherexample, scan device may instruct the external application to encryptthe scan data (or data generated therefrom) before storing the encryptedscan data.

At step 860, scan server 140 communicates with definition server 120 tovalidate the scan process definition that was used by scan device 130 inperforming the scan operation.

At step 865, scan server 140 processes the scan data based on thepost-scan instructions that are indicated in the scan processdefinition. The post-scan instructions may include destination data thatindicates one or more destinations to which the scan data is to be sentor stored. Thus, step 865 may involve causing the scan data to be storedin one or more storage locations, such as in a particular networkfolder, or by sending an email with the scan data attached thereto.Alternatively, scan server 140 may be configured to always cause scandata to be sent or stored in the same location, such as always sendingscan data to a particular email address or storing all scan data in aparticular network folder. Additionally or alternatively, scan server140 may be configured to analyze the scan data or metadata (generated byscan device 130) of the scan data to determine which storage locationthe scan data is to be stored. For example, metadata of the scan datamay identify a name (or identifier) of a user (e.g., that initiated thescan operation) and the name is mapped to a particular storage location,such as an email address.

III. Metadata Support

In an embodiment, scan server 140 processes metadata that is sent inassociation with scan data that is generated by and transmitted fromscan device 130. The metadata is distinct and separate from thepost-scan instructions of a scan process definition. The metadata mayoriginate from one or more sources, such as metadata that is specifiedin a scan process definition, metadata that is specified by a user atscan device 130, and metadata that is retrieved by scan device 130 froma source that is external to scan device 130. Each of these sources isdescribed in more detail below.

A. Extension Data

In an embodiment, administrator terminal 110 provides a user interfacethat allows an administrator to specify extension data (e.g., extensiondata 340) to be included in a scan process definition. Such an interfaceis referred to herein as an “extension data UI.” The extension data isused by scan device 130 to associate metadata with scan data that isgenerated in response to processing a scan job.

In an embodiment, the extension data is included in an individualhardware vendor (IHV) extension point within a scan process definitionthat is in an XML format. An example opening tag for an IHV extensionpoint is “<ihv>.”

FIG. 9 depicts an example scan process definition that includesextension data, in an embodiment. In this example, the extension data iswithin three IHV elements. One of the IHV elements includes a URL fromwhich scan device 130 is to retrieve information. The URL identifies aweb page of an expense system that is used for submitting a receipt. Thesecond IHV element is an expense report identifier that is associatedwith scan data that is to be generated based on the scan settings datain the example scan process definition. The third IHV element is acomment field, which may, after being processed by scan device 130,cause a GUI to be displayed at scan device 130, where the GUI promptsthe user for input, which will accompany to-be-generated scan data as“comments.”

In an embodiment, the extension data UI is separate from the userinterface described above that allows a user to create/edit scan processdefinitions (referred to herein as a “definition UI”). Alternatively,the definition UI includes extension data UI capabilities. In otherwords, there is only one UI at administrator terminal 110 and that UIallows an administrator to create/edit scan process definitions andspecify extension data for one or more scan process definitions.

An extension data UI may simply comprise a text entry field that allowsthe administrator to specify the extension data. In this way, theextension data UI functions as a simple text editor. Thus, if a scanprocess definition is XML data, then the administrator may be requiredto specify all the extension data, including all the necessary XMLformatting. If the administrator does not format the extension dataproperly within a scan process definition, then scan device 130 mightnot be able to properly interpret the extension data.

Alternatively, an extension data UI includes one or more text entryfields, each of which is associated with an XML element that may beinserted in a scan process definition. When an administrator desires tosave the specified extension data, the user interface is configured tocreate the appropriate element tags (and, optionally, tag attributedata) that are interpretable and recognizable by scan device 130.

B. Processing Extension Data

In response to receiving a scan process definition, scan device 130analyzes the scan process definition for extension data. For example,scan device 130 determines whether the scan process definition includesIHV extension point data, such as an IHV tag within the scan processdefinition. If no extension data is discovered within the scan processdefinition, then scan device 130 proceeds as normal; that is, scanningone or more printed documents based on scan settings data in the scanprocess definition. The determination of whether a scan processdefinition includes extension data may be made before or after scandevice 130 generates scan data for a scan job.

In an embodiment, scan device 130 includes an XML Schema Definition(XSD) that scan device 130 uses to determine whether the extension dataconforms to the XSD. If not, then it may be presumed that the extensiondata (or the corresponding scan process definition) was modified (orotherwise tampered with) before arriving at scan device 130.

1. External Data

In an embodiment, extension data is used by scan device 130 to retrievedata from an external source. For example, an IHV element in a scanprocess definition may include an element (e.g., “<external source>”) orattribute that indicates that an external source is involved. Scandevice 130 is configured to distinguish such an element (or attribute)from other possible elements or attributes in the scan processdefinition. Data within a scan process definition that indicates that anexternal source is involved is referred to herein as “external sourcedata.”

If extension data includes external source data, such data may includean address (e.g., IP address) of an external source or data that isassociated with such an address and that is stored on scan device 130.For example, scan device 130 stores an association between externalsource A and an IP address of external source A. Then, in response todetermining that external source data indicates “external source A,”scan device 130 uses the IP address to send a request to external sourceA.

If extension data includes external source data, such data may alsoinclude data that indicates what to request from the external source.For example, a request may be for a next invoice number (or an invoicenumber that has not yet been created). In response to receiving such arequest for a next invoice number from scan device 130, the externalsource determines an invoice number that will be associated with thecorresponding scan job (or the generated scan data).

After receiving data from an external source, scan device 130 associatesthe data with scan data. The data received from an external source isreferred to herein as “external data.”Scan device 130 sends the externaldata and the scan data to scan server 140. Scan device 130 may send theexternal data immediately before or immediately after the scan data.Alternatively, scan device 130 sends the external data within the samemessage that includes the scan data.

i) Example Scenario

The following is an example of how external source data within a scanprocess definition may be used. In this example, the external sourcedata includes an instruction to send a request for invoice informationto an invoice server. The external source data may indicate one or moreparameters (e.g., user credentials, date range, etc.) that should beincluded in the request. Accordingly, scan device 130 sends the request(and any parameters thereof) to the invoice server indicated in theexternal source data.

The invoice server responds to the request by retrieving invoiceinformation from an invoice database, which may be local or remoterelative to the invoice server. The invoice server sends the invoiceinformation to scan device 130, which causes at least a portion of theinvoice information to be displayed. For example, scan device 130displays multiple invoice numbers, each of which is selectable by a userat scan device 130. The user selects one of the invoice numbers.

After scan device 130 performs a scan operation based on the scansettings data in the scan process definition, scan device 130 sends theselected invoice number, the scan data, and post-scan instructions toscan server 140. The invoice number may be embedded as metadata of thescan data or may simply accompany the scan data as the scan data is sentto scan server 140.

Scan server 140 processes the scan data in accordance with the post-scaninstructions, which processing includes causing the scan data to bestored in one or more storage locations. Scan server 140 may alsovalidate the scan process definition with definition server 120.

A third-party service, such as the invoice server, may be notified whena scan data is stored at a certain storage location in a number of ways.For example, the invoice server may periodically poll the storagelocation (e.g., every 2 minutes). As another example, a network foldermay be associated with a listener process that detects when scan data isstored in the network folder. The listener process then notifies theinvoice server of that event. In response to being notified, the invoiceserver retrieves the scan data and the associated metadata (whichincludes the selected invoice number) and stores the scan data in aninvoice database in association with the metadata. As another example,scan server 140 stores event information in an event log of an eventsystem whenever scan server successfully processes a scan data accordingto post-scan instructions. The event system may be configured to sendnotifications to other processes or services (such as the invoiceserver) when certain events are stored in the event log. As anotherexample, scan server 140 may be configured to notify scan device 130(e.g., through an event notification) that the scan data wassuccessfully stored. In response to receiving this notification, scandevice 130 may be configured to notify another service (not depicted inFIG. 1) that scan data is ready to be processed. This latternotification may simply inform the other service about the scan data ormay provide additional instructions on how to process the scan data,such as extracting certain data from scan data, associating other datawith the extracted data, and storing the extracted data and other datain a certain storage location.

This example scenario may vary greatly from one implementation toanother. In one possible implementation, scan device 130 stores theselected invoice number in association with a job ID. Scan device 130subsequently sends the selected invoice number and job ID to scan server140 along with the post-scan instructions. Scan server 140 then sends anotification to definition server 120 along with the job ID. Definitionserver 120 receives the job ID and then requests, from scan server 140,the invoice information associated with the job ID. In response toreceiving the invoice information from scan server 140, definitionserver 120 sends the invoice information to an invoice server. Inresponse, the invoice server retrieves the scan data from a storagelocation that was indicated in the post-scan instructions. The invoiceserver may be configured to retrieve information from the storagelocation or may be configured to use storage location data associatedwith the job ID to first identify the storage location and then retrievethe information from the storage location.

2. User Input

In an embodiment, extension data is used by scan device 130 to receiveuser input that is to be associated with scan data of a scan job. Forexample, an IHV element in a scan process definition may include anelement (e.g., “<user input>”) that indicates that user input isinvolved. Data within a scan process definition that indicates that userinput is involved is referred to herein as “user input data.”

If extension data includes user input data, then scan device 130generates a user interface that allows a user at scan device 130 toenter data, such as voice data or text data using a keyboard provided byscan device 130. The user interface may be generated based on datawithin the user input data, referred to herein as “input interfacedata.” In other words, scan device 130 is configured to read the inputinterface data and generate a user interface that is based on the inputinterface data. In this way, the user input data may also define howdata reflected in user input is to be formatted and/or processed by scanserver 140.

Alternatively, the user interface generated by scan device 130 is notgenerated based on the user input data. Instead, scan device 130 may beconfigured to generate the user interface in response to detecting theuser input data.

After user input is received through the user interface (regardless ofhow the user interface is generated), scan device 130 sends the userinput along with scan data (that scan device 130 generates based on thescan settings indicated in the scan process definition) to scan server140.

3. Pass Through Data

In an embodiment, scan device 130 associates at least a portion of theextension data with scan data of a scan job. For example, an IHV elementin a scan process definition may include an element (e.g., “<passthrough>”) or attribute that indicates that data within the element (orassociated with the attribute) is to be associated with scan data thatwill be generated. Such data is referred to herein as “pass throughdata.” Scan device 130 identifies the pass through data and, aftergenerating scan data based on one or more scan settings indicated in thescan processing definition that includes the extension data, sends thepass through data and the scan data to scan server 140. Scan device 130may also send destination data or post-scan instructions that indicatewhere scan server 140 is to store the scan data and the pass throughdata. One example use of pass through data is to use the pass throughdata to perform image processing and/or file format conversion at scanserver 140 (or other destination to which the generated scan data willbe stored).

IV. Rights Management Service

According to an embodiment, distributed scan management system 100 isassociated with a rights management service (RMS). The RMS is used torestrict who can access certain scan data, when the access is allowed,and/or what type of access is allowed. For example, groups A and B maybe the only groups allowed to access particular scan data. Users fromgroup A may be allowed to access the particular scan data any time ofthe day while users from group B may be allowed to access the particularscan data only during working hours. Also, users from group A may beallowed to only perform certain operations with respect to theparticular scan data, such as read, print, copy, forward the particularscan data and modify metadata of the particular scan data. Users fromgroup B, on the other hand may be allowed to only read and print theparticular scan data. Access rights data that indicates who, when,and/or how scan data may be accessed is referred to herein as “rightsmanagement data.”

A. Source of Rights Management Data

Rights management data may be defined in one or more locations. Forexample, rights management data may be defined by an administrator atadministrator terminal 110. Administrator terminal 110 provides a userinterface that is configured to allow an administrator to define rightsmanagement data within a scan process definition, for example, within anextension portion (e.g., an IHV extension point) of a scan processdefinition.

FIG. 10 depicts an example scan process definition that includes rightsmanagement data, in an embodiment. In this example, the rightsmanagement data is located within an IHV element and indicates“everyone-read-only.”

As another example, rights management data may be defined by a user atscan device 130. Thus, scan device 130 provides a user interface thatallows a user at scan device 130 to define rights management data. Theuser interface may be generated based on extension data within a scanprocess definition. Alternatively, scan device 130 may be configured toprovide a user interface to allow a user to define rights managementdata without relying on any portion of a scan process definition. Ineither scenario, if a selected scan process definition does not includerights management data, then a user at scan device 130 may define rightsmanagement data “from scratch” for scan data that is generated based onthe selected scan process definition.

In a related embodiment, one portion of rights management data for aparticular set of scan data may be defined within a scan processdefinition that was used to generate the particular set of scan data,while another portion of rights management data may be defined by a userat scan device 130 that generated the particular set of scan data.

In an embodiment, extension data within a scan process definition thatincludes rights management data may indicate whether or which portionsof the rights management data may be modified at a scan device, such asscan device 130. For example, the extension data may indicate that auser at a scan device is not allowed to modify any of the scan dataaccess rights. As another example, the extension data may indicate thata user at a scan device may only add additional restrictions and notremove any of the restrictions indicated in the rights management data.As another example, the extension data may indicate that a user at ascan device is allowed to modify only who can access the scan data butis not allowed to modify what type of access (e.g., read, print, copy,delete) is allowed.

B. Pre-Scan Server Approach

FIG. 11 is a block diagram that depicts DSM system 100 that isassociated with a rights management service (RMS) server 1100, in anembodiment. RMS server 1100 works with RMS-enabled applications (such asweb browsers, email applications, word processing applications, andimage viewer applications) to help safeguard digital information fromunauthorized use. RMS server 1100 uses security technologies (such asencryption, certificates, and authentication) to help organizationscreate reliable information protection solutions.

In the depicted embodiment, scan device 130 is configured to communicatewith a RMS service 1110, which is communicatively coupled to RMS server1100. RMS service 1110 and RMS server 1100 may be provided by differentparties or by the same party.

In an alternative embodiment, scan device 130 is not communicativelycoupled to RMS service 1110. Instead, scan device 130 implements RMSservice 1110 and is, thus, configured to communicate directly (albeit,over a network in an embodiment) with RMS server 1100.

FIG. 12 is a sequence diagram that depicts a process 1200 for utilizingrights management data at scan device 130, in an embodiment.

At step 1210, scan device 130 generates scan data based on scan settingsdata specified in a scan process definition.

At step 1220, scan device 130 identifies rights management data. Therights management data may be specified at scan device 130 by a user ofscan device 130. Alternatively, scan device 130 identifies the rightsmanagement data in the scan process definition. For example, scan device130 analyzes an extension portion (e.g., an IHV extension point) of thescan process definition and detects the rights management data in thatportion.

At some point prior to step 1220, scan device 130 may have received aclient licensor certificate (CLC) generated by RMS server 1100.

At step 1230, scan device 130 encrypts the scan data with a symmetrickey, which is then encrypted using a public key of RMS server 1100.

At step 1240, scan device 130 generates a publishing license thatcontains the rights management data and the symmetric key. Thepublishing license is then bound to the file. Only RMS server 1100 canissue use licenses to decrypt the encrypted scan data.

At step 1250, scan device 130 sends the encrypted scan data andpublishing license to scan server 140. Prior to sending the encryptedscan data, scan device 130 may embed the publishing license withinmetadata of a file that contains the encrypted scan data.

At step 1260, scan server 140 causes the encrypted scan data andpublishing license to be stored. As described previously, scan server140 may be pre-configured to store scan data in a certain location.Alternatively, scan device 130 may have sent destination data to scanserver 140 along with the encrypted scan data and publishing license.Scan server 140 then uses the destination data to determine where theencrypted scan data and publishing license are to be stored, such as ina certain network folder accessible to scan server 140.

At step 1270, a recipient uses an RMS-enabled application (not depictedin FIG. 11), such as a media presentation application, to send, to RMSserver 1100, a request for a use license. The request includes therecipient's account certificate (that contains a public key of therecipient) and the publishing license.

At step 1280, RMS server 1100 validates whether the recipient isauthorized, checks whether the recipient is a named user, and creates ause license. During this process, RMS server 1100 decrypts the symmetrickey using a private key of RMS server 1100, re-encrypts the symmetrickey using the public key of the recipient, and adds the encryptedsession key to the use license. This step ensures that only the intendedrecipient can decrypt the symmetric key and, thus, decrypt the protectedfile. RMS server 1100 may also add any relevant conditions to the uselicense, such as an expiration of the user license or an application oroperating system exclusion. Such conditions may have been specified inthe rights management data.

C. Post-Scan Server Approach

FIG. 13 is a block diagram that depicts a distributed scan managementsystem 1300 that is associated with RMS server 1100, in an embodiment.In this embodiment, RMS service 1310 is similar to RMS service 1110,except that RMS service 1310 operates on scan data after scan server 140processes the scan data. Although FIG. 13 depicts RMS service 1310 asbeing communicatively coupled to DSM system 100, RMS service 1310 iscommunicatively coupled to one or more storage locations to which scanserver 140 may store scan data. One of the storage locations may bewithin DSM system 100, such as a network folder that is local to DSMsystem 100. However, one of the storage locations may be outside DSMsystem 100, such as an email account or a storage service that is remoterelative to DSM system 100.

In an alternative embodiment, RMS service 1310 is implemented on scanserver 140 or one of the one or more storage locations to which scanserver may store scan data.

FIG. 14 is a sequence diagram that depicts a process 1400 for utilizingrights management data at scan device 130, in an embodiment. At step1405, scan device 130 generates scan data based on scan settings dataspecified in a scan process definition.

At step 1410, scan device 130 identifies rights management data. Therights management data may be specified at scan device 130 by a user ofscan device 130. Alternatively, scan device 130 identifies the rightsmanagement data in the scan process definition. For example, scan device130 analyzes an extension portion (e.g., an IHV extension point) of thescan process definition and detects the rights management data in thatportion.

At step 1415, scan device 130 sends the rights management data and thescan data to scan server 140, instead of sending the rights managementdata to RMS service 1310.

At step 1420, scan server 140 causes the rights management data to bestored in association with the scan data. The rights management data maybe stored as metadata of the scan data. As noted previously, scan server140 may use destination data that was included in a scan processdefinition to determine where to send the scan data and rightsmanagement data for storage, such as an email address, a network folder,or a storage service outside of the distributed scan management system100.

At step 1425, after scan server 140 causes the scan data and rightsmanagement data to be stored at a particular location, RMS service 1310determines that scan data is available at the particular location. RMSservice 1310 may make this determination in one of several ways. Forexample, RMS service 1310 may periodically poll a network folder, anemail account, or a shared storage account to determine whether scandata and rights management data has been stored therein since a previouspolling action. As another example, a listener process at the particularlocation detects the storage of the scan data and sends a message to RMSservice 1310.

At step 1430, in response to determining that scan data is available atthe particular location, RMS service 1310 encrypts the scan data with asymmetric key, which is then encrypted using a public key of RMS server1100.

At step 1435, RMS service 1310 generates a publishing license thatcontains the rights management data and the symmetric key. Thepublishing license is then bound to the file. Only RMS server 1100 canissue use licenses to decrypt the encrypted scan data.

At step 1440, RMS service 1310 causes the encrypted scan data andpublishing license to be stored. Prior to causing the encrypted scandata to be stored, RMS service 1310 may embed the publishing licensewithin metadata of a file that contains the encrypted scan data. Theencrypted scan data and the publishing license may be stored in the samelocation from which RMS service 1310 read the original scan data andrights management data. For example, if the scan data and rightsmanagement data were stored in a particular network folder, then RMSservice 1310 causes the encrypted scan data and publishing license to bestored in the particular network folder. Alternatively, RMS service 1310may be configured to cause the encrypted scan data and publishinglicense to be stored in a different location. The different location maybe “hard-coded” in RMS service 1310 or may be based on destination datathat RMS service 1310 processes. Such destination data may have beenstored along with the original scan data and rights management data ormay originate from a different source.

At step 1445, a recipient uses an RMS-enabled application (not depictedin FIG. 13) to send, to RMS server 1100, a request for a use license.The request includes the recipient's account certificate (that containsa public key of the recipient) and the publishing license.

At step 1450, RMS server 1100 validates whether the recipient isauthorized, checks whether the recipient is a named user, and creates ause license. During this process, RMS server 1100 decrypts the symmetrickey using a private key of RMS server 1100, re-encrypts the symmetrickey using the public key of the recipient, and adds the encryptedsession key to the use license. This step ensures that only the intendedrecipient can decrypt the symmetric key and, thus, decrypt the protectedfile. RMS server 1100 may also add any relevant conditions to the uselicense, such as an expiration of the use license or an application oroperating system exclusion. Such conditions may have been specified inthe rights management data

V. Extend Scan Management System for Printing

According to an embodiment, a distributed scan management system (suchas DSM system 100) is extended to support printing. Many of thecomponents of a distributed scan management system, such as anadministrator terminal, an active directory server, and a scan servicemay be leveraged in a print context where the scan device is a printdevice.

FIG. 15 is a block diagram that depicts a distributed print management(DPM) system 1500, in an embodiment. DPM system 1500 includes anadministrator terminal 1510, a definition server 1520, a print device1530, and a print server 1540. Although only a single print device isdepicted, DPM system 1500 may include multiple print devices, each ofwhich is communicatively coupled to definition server 1520 and printserver 1540.

A. Administrator Terminal

Similar to administrator terminal 110, administrator terminal 1510includes a print management console (PMC) 1512 that allows anadministrator to define print process definitions. Administratorterminal 1510 may be administrator terminal 110 and, thus, also includeSMC 112. Alternatively,

B. Print Process Definition

A print process definition specifies a set of print settings that may beused to generate a printed version of an electronic document representedin print data that is sent to the printing device. Examples of printsettings include duplex, color/grayscale, orientation, and paper size.

A print process definition may also include destination data thatindicates one or more destinations to which data about a print job thatuses the print process definition is to be stored. Such destination datamay indicate one or more destinations, such an email address, a storageservice that is outside DPM system 1500), or a network folder.

A print process definition may also include user access right data thatis similar in content as user access rights data 330 describedpreviously. For example, the user access right data may indicate who isallowed access to the print process definition. The user access rightdata may indicate that anyone is able to use the print processdefinition, one or more groups that are allowed to use the print processdefinition, or one or more individuals who are allowed to use the printprocess definition.

A print process definition may also include extension data that is usedsimilar to the extension data described previously with respect to scanprocess definitions.

C. Definition Server

Once defined, PMC 1512 transmits print process definitions to definitionserver 1520, which stores the print process definitions. Definitionserver 1520 is configured to respond to requests, from PMC 1512, forprint process definitions to edit at administrator terminal 1510.Definition server 1520 may be configured to maintain a current versionof a print process definition and one or more previous versions of theprint process definition and allow a PMC 1512 to request a particularversion of a print process definition.

Definition server 1520 is also configured to respond to requests, from aprint device (e.g., print device 1530), for print process definitions. Arequest from a print device includes data that definition server 1520uses to select one or more print process definitions from among multipleprint process definitions. Such data may include a username and passwordthat a user provides in association with print device 1530. For example,a user enters his/her username and password using a keyboard provided byprint device 1530. In response to receiving the user-relatedinformation, definition server 1520 determines which print processdefinitions are associated with the user-related information. Forexample, definition server 1520 may determine, based on the user-relatedinformation, whether the user is associated with any groups. If so,definition server 1520 identifies one or more groups and then determineswhich print process definitions are associated with each group of theone or more identified groups.

In response to identifying one or more print process definitions basedon a request from print device 1530, definition server 1520 providesprint process definition identification data to print device 1530. Theprint process definition identification data identifies one or moreprint process definitions. The print process definition identificationdata may include the actual one or more print process definitions or mayonly identify the one or more print process definitions. In case of thelatter scenario, print device 1530 displays, on a display screenassociated with print device 1530, data that identifies the one or moreprint process definitions. The print device 1530 allows a user to selecta print process definition identifier from among one or more printprocess definition identifiers. In response to receiving input thatselects a particular print process definition identifier, print device1530 sends, to definition server 1520, selection data that identifiesthe print process definition that the user selected. In response,definition server 1520 sends the selected print process definition toprint device 1530.

D. Print Device

Print device 1530 is a computing device that is configured to processprint jobs, each of which involves generating a printed version of anelectronic document represented in print data. The printed versioncomprises one or more printed documents on a tangible medium, such aspaper. The printing of the printed document(s) is based on one or moreprint settings indicated in a print process definition retrieved fromdefinition server 1520. Print device 1530 may be a multifunctionperipheral (MFP) that provides one or more other non-print services,such as a scan service, a fax service, and/or an archive service.

Print device 1530 includes an interface that allows a user to initiate(or at least complete) a print job. The interface may comprise a displayscreen for displaying data and selectable buttons for initiating a printjob. Print device 1530 may include other buttons, some of which may bephysical and others of which may be graphical.

Before a user initiates a print operation at print device 1530, printdevice 1530 authenticates the user. For example, print device 1530 mayhave an attached badge reader that is capable of reading data from abadge of a user. The data may be one or more values that print device1530 reads and sends to definition server 1520 in order to authenticatethe user.

1. Locked Printing

In an embodiment, print device 1530 is configured with a feature knownas “locked printing” to provide control over the printing of electronicdocuments. According to this feature, after print device 1530 receivesprint data, print device 1530 does not immediately generate a printedversion of an electronic document represented in the print data.Instead, the print device 1530 waits until a user accesses the printdevice 1530 and requests that a print job be processed. A user may begranted access to locked print jobs only after a password is verified atprint device 1530. A user enters a password through an operation panelon print device 1530. Print device 1530 verifies the password and, ifthe password is successfully verified, allows a printed version of theelectronic document represented in the print data to be generated, i.e.,printed. Print device 1530 may display one or more print jobs, each ofwhich is associated with a different set of print data that the user (orsomeone associated with the user) caused to be transmitted to printdevice 1530 (or storage that is accessible to print device 1530).

In this “locked printing” embodiment, print device 1530 may transmitthis same password (and, username, if applicable) to definition server1520 in order to retrieve a list of one or more print processdefinitions from definition server 1520. One benefit of this approach isthat a user is not required to enter his/her password multiple times.Instead, the same user credentials that are used to “unlock” the user'sprint job are used to retrieve a print process definition that is usedto perform a print operation.

2. Print Job Completion Data

In an embodiment, after generating a printed version of an electronicdocument, print device 1530 generates print job completion data. Printjob completion data includes information about the print job, such asdata that identifies who initiated the print job, who was authenticatedat print device 1530, at time at which the print job was executed, howmany pages were printed, whether color was used, the size of the printeddocuments, which print process definition was used, and/or another printsetting used to generated the printed version.

Print device 1530 may store the print job completion data locally onprint device 1530. Another service that executes on a device that isseparate from print device 1530 may then access storage on print device1530 and retrieve print job completion data associated with one or moreprint jobs.

Alternatively, print device 1530 sends the print job completion data toanother device that is responsible for making the print job completiondata available to one or more external applications that are outside DPMsystem 1500. For example, print device 1530 sends print job completiondata to print server 1540. The decision on sending print job completiondata to print server 1540 may be based on (a) destination data that isindicated in the print process definition that was used to generate theprinted version or (b) destination data that was specified by a user atprint device 1530. The destination data may identify print server 1540or may simply be an indication that the print job completion data is tobe processed within DPM system 1500. Alternatively, the decision onsending print job completion data to print server 1540 may be due toprint device 1530 being pre-configured (e.g., “hard-coded”) toautomatically send print job completion data to print server 1540 afterprint device 1530 generates the print job completion data.

E. Print Server

Print server 1540 receives print job completion data from print device1530 (and, optionally, one or more other print devices, not depicted inFIG. 15). If print server 1540 is configured as a scan server (similarto scan server 140), then print server 1540 may be configured to“expect” one or more images files in one of multiple formats. Printserver 1540 may, thus, be configured to check for certain fileextensions, such as .pdf, .tif, .png, or .jpg. Thus, in an embodiment,print device 1530 adds, to the print job completion data, an image fileextension that is recognizable to print server 1540. Thus, print device1530 may store file extension data that identifies only image fileextensions that print server 1540 recognizes.

Print server 1540 causes the print job completion data to be storedbased on one or more criteria. The one or more criteria may indicatewhere to store the print job completion data. For example, ifdestination data accompanies print job completion data from print device1530, then print server 1540 may send the print job completion data toone or more destinations indicated in the destination data. Exampledestinations include a network folder (that is located in a network thatis “local” to print server 1540), a third party storage service (that islocated in a remote network), or a set of one or more email addresses.The destination data may indicate any combination of these exampledestinations. Furthermore, the destination data may be supplied by auser at print device 1530, included in a print process definitionretrieved from definition server 1520, or both. For example, (1) a usermay enter a personal email address to which print server 1540 is to sendprint job completion data and (2) a print process definition that theuser selects may include a name of a network folder to which printserver 1540 is to store the print job completion data.

Alternatively, print server 1540 may be configured to store all printjob completion data that print server 1540 receives in the samelocation. Such an embodiment may be used for all print jobs or only forprint jobs where no destination data accompanies the resulting print jobcompletion data.

In an embodiment, prior to causing print job completion data to bestored at one or more destinations, print server 1540 validates theprint process definition (referred to herein as the “receiveddefinition”) that includes the print settings that were used to createthe printed version. Validation may involve print server 1540 sendingthe received definition (i.e., received from print device 1530) todefinition server 1520. Definition server 1520 determines whether thereceived definition matches a print process definition (referred toherein as the “original definition”) that definition server 1520provided to print device 1530. A “match” may be an exact match betweenthe two print process definitions. Alternatively, a “match” may be anexact match of one or more portions of the original definition that havebeen designated as unalterable with the corresponding one or moreportions of the received definition.

If definition server 1520 provides a response that indicates that thereceived definition matches the original definition, then print server1540 continues processing the print job completion data. Else, printserver 1540 may send a notification to print device 1530 that thereceived definition identified is not valid. Also, print server 1540might not cause the print job completion data to be stored at theappropriate or designated destination(s).

In an embodiment, print server 1540 maintains an event log that logsinformation regarding different print jobs. The event log may store, foreach print job, data that indicates one or more of what print device wasinvolved, when the print job was performed, which print processdefinition was used, where the corresponding print job completion datais stored, who initiated the print job, and whether or which printsettings were modified by a user. The event log may be stored on thesame device that executes the print server or on a separate device. Anevent manager that is separate from the print server may be configuredto manage event subscriptions, analyze the event log to determinewhether any events of interest have occurred, and, in response todetermining that events of interest have occurred, transmit eventnotifications to one or more event sinks associated with the relevantevent subscriptions.

F. Services that Leverage Print Job Completion Data

Once print job completion data is created and stored for one or moreprint jobs, such information may be analyzed by one or more services. Anexample of a service that may use print job completion data is a costrecovery service. A cost recovery service may analyze the print jobcompletion data and determine how much to charge an individual, a group,or a company for using print device 1530 (and, optionally, other printdevices in DPM system 1500). The cost recovery service may take intoaccount one or more factors in determining how much to charge for use ofprint device 1530. Examples of such factors include, without limitation,for all or certain print jobs, how many pages were printed, whethercolor was used, how much toner was used, who initiated the print jobs,when print jobs were executed (e.g., time of day, week, month, and/oryear).

After print server 1540 causes the print job completion data to bestored at a particular location, a service (such as a cost recoveryservice) determines that print job completion data is available at theparticular location. The service may make this determination in one ofseveral ways. For example, the service may periodically poll a networkfolder, an email account, or a shared storage account to determinewhether scan data and rights management data has been stored thereinsince a previous polling action. As another example, a listener processat the particular location detects the storage of the scan data andsends a message to the service.

A service may access print job completion data in one or more ofmultiple ways. For example, the service may send, to print device 1530,a request for print job completion data. The service may send therequest periodically or in response to detection of an event. Therequest may be for all print job completion data stored at print device1530. Alternatively, the request may specify one or more criteria thatprint device 1530 may use to identify a subset of the print jobcompletion data that satisfy the one or more criteria. Examples ofcriteria include a date range in which the corresponding print job wasexecuted, a time of day in which the corresponding print job wasexecuted, an identity of the user that initiated the corresponding printjob, an identity of the print process definition, an indication of oneor more print settings that were used to execute the corresponding printjob.

As another example, the service may directly access one or more storagelocations in which print server 1540 stores the print job completiondata. For example, as noted above, a possible storage location is anemail account, to which the service may have access.

A service (such as a cost recovery service) may execute on the samedevice as print server 1540 or on a separate device therefrom, such as adevice that is outside DPM system 1500. For example, a cost recoveryservice or even remote relative to DPM system 1500. Thus, the costrecovery service may be a third party service relative to the entitythat provides DPM system 1500.

G. Extending Scan Management System to Other Contexts

While printing is one context in which scan management techniques (e.g.,employing administrative terminals and/or process definitions) may beextended, scan management techniques may be extended for other contexts.For example, although not depicted, scan device 130 may be instead acomputing device that includes a digital camera. The computing devicemay be smartphone or tablet computer with a touchscreen display.

The computing device may communicate with a definition server toretrieve one or more “capture” process definitions. The one or more“capture” process definitions include picture settings that are used bythe computing device to generate a digital image (i.e., “take apicture”). Alternatively, a capture process definition may be stored onthe computing device itself.

Similar to a scan process definition, a capture process definition mayalso include access data that indicates a set of one or more users whoare able to use the capture process definition. Additionally oralternatively, a capture process definition may include devicemanagement data that is used to determine whether a computing device isallowed to use the capture process definition to generate a digitalimage. “Device management data” is described in more detail below.

Similar to a scan process definition, a capture process definition mayalso include destination data that indicates where a digital image (thatis generated based on the capture process definition) is to be stored,whether locally or remotely. The destination data may be processed by“picture server,” similar to scan server 140, described previously.Alternatively, the destination data may be processed by the computingdevice that generates the digital image that is to be processed.

VI. Device Management

As described previously, a scan process definition is associated withone or more users. If any of the one or more users in an organizationdesires to use the scan process definition in performing a scanoperation, the scan process definition is requested from definitionserver 120 and transmitted to the scan device that the user is currentlyusing. The number of scan devices in the organization may besignificant. Thus, any scan device in the organization may be used toretrieve the scan process definition.

However, in an embodiment, one or more scan process definitions arelimited or restricted to a strict subset of scan devices in anorganization. The restriction of a scan process definition to a set ofone or more scan devices may be specified in association with the scanprocess definition. The data that is associated with one or more scandevices and that indicates one or more restrictions with respect to theone or more scan devices is referred to herein as “device managementdata.”

A. Device Management Data

Device management data indicates one or more scan devices, each of whichis allowed to use a scan process definition to generate scan data.Device management data may specify one or more individual scan devicesor one or more ranges of identifiers (e.g., an IP address range) thateach correspond to multiple possible scan device identifiers. Anindividual scan device is distinguished from other scan devices using ascan device identifier that is unique at least relative to other scandevices in DSM system 100. Examples of a scan device identifier include,without limitation, an IP address, a MAC address, or a GUID (or globallyunique identifier).

Additionally or alternatively, multiple scan devices may be associatedwith the same scan device group identifier. In this way, restrictingwhich scan devices are allowed to use a scan process definition may beenforced on a device group basis rather than on an individual scandevice basis.

Device management data “indicates” one or more scan devices by eitherincluding one or more identifiers of the one or more scan devices or byincluding one or more identifiers of one or more other scan devices. Forexample, device management data may identify scan device X, which maysignify that only scan device X is allowed to use a scan processdefinition to generate scan data. As another example, device managementdata may identify scan device X, which may signify that any scan deviceother than scan device X is allowed to use a scan process definition togenerate scan data.

FIG. 16 depicts an example scan process definition that includes devicemanagement data, in an embodiment. In this example, the devicemanagement data is located within two different IHV elements. Each ofthe two IHV elements includes a different unique identifier for a scandevice.

In a related embodiment, in addition to indicating one or more scandevices, device management data indicates one or more restrictions withrespect to a scan job that is executed (or will be executed) at a scandevice. An example of a restriction is one or more destinations that arenot allowed to receive scan data generated by a scan device. Forexample, device management data may indicate that scan data generated ata particular scan device using a scan process definition is not to besent to any email address outside of a business organization. In thisway, one scan device in one location or department of a businessorganization may be allowed (based on a scan process definition) to sendgenerated scan data to any recipient while another scan device in adifferent location or department of the business organization may berestricted (based on the same scan process definition) on the targetrecipients of generated scan data.

Another example of an additional restriction is when a scan operation isallowed to be performed. For example, device management data within ascan process definition may indicate that a scan operation is notallowed at a particular scan device after 9 PM on weekday nights oranytime on a weekend.

FIG. 17 is a block diagram that depicts an example distributed scanmanagement (DSM) system 1700 that includes multiple scan devices, in anembodiment. DSM system 1700 is similar to DSM system 100, except thatDSM system 1700 includes multiples scan devices 132, 134, and 136. Eachof scan devices 132-136 is communicatively coupled to definition server120 and to scan server 140 and is capable of requesting and receiving,from definition server 120, multiple scan process definitions. Also,each of scan devices 132-136 is capable of generating scan data based onscan process definitions and transmitting the scan data (and,optionally, the scan process definitions) to scan server 140.

FIG. 18 is a sequence diagram that depicts a process 1800 for creatingand using device management data, in an embodiment. At step 1805, anadministrator at administrator terminal 110 specifies device managementdata. The administrator may specify the device management data whilecreating a scan process definition using SMC 112.

Additionally or alternatively, an administrator may use SMC 112 to senda request to definition server 120 for an already-created scan processdefinition stored therein. The administrator then uses SMC 112 tospecify device management data and add (or modify) the device managementdata to the requested scan process definition. For example, a scandevice is added to DSM system 1700. In light of this addition, anadministrator, at terminal 110, retrieves one or more scan processdefinitions and adds, to the device management data of each scan processdefinition, a scan device identifier that identifies the new scandevice.

B. Storing Device Management Data

At step 1810, SMC 112 sends the device management data to definitionserver 120 to be stored in association with a scan process definition.

In an embodiment, device management data is specified or indicatedwithin a scan process definition. If the scan process definition isformatted as an XML document, then device management data may bespecified as extension data within the XML document. For example, devicemanagement data may be specified within an individual hardware vendor(IHV) element of the XML document.

In a related embodiment, device management data is stored separatelyfrom, but in association with, a scan process definition. For example,definition server 120 stores a mapping that associates (1) one or morescan process definitions with (2) device management data. The mapping isstored separately from any scan process definition.

C. Processing Device Management Data

After device management data is stored in association with a scanprocess definition, the device management data may be processed atdifferent times and/or by different entities. For example, processingdevice management data that is associated with a scan process definitionmay be performed before or after a scan job that relies on thecorresponding scan process definition in question is executed. Also, indifferent embodiments, definition server 120, a scan device (e.g., scandevice 130), scan server 140, or a device outside of DSM system 1700processes device management data.

Processing device management data involves reading the device managementdata and enforcing one or more restrictions indicated by the devicemanagement data with respect to a scan job. Such enforcing may involve,for example, determining whether a scan device identifier is specifiedwithin the device management data or determining whether a specifieddestination of generated scan data is allowed to receive the scan data.For example, the entity enforcing one or more restrictions indicated indevice management data determines whether scan device identificationdata is included in the device management data. As noted above, theinclusion of a scan device identifier within device management data mayindicate that the scan device is/was not allowed to generate thecorresponding scan data or may indicate that the scan device is/wasallowed to generate the corresponding scan data.

Device management data is said to “satisfy one or more criteria” if theentity that processes the device management data with respect to a scanjob determines that no restriction associated with the device managementdata needs to be enforced. For example, the scan job should be executedor, if already executed, the scan data generated from the scan jobshould be processed according to post-scan processing instructionsindicated in the corresponding scan process definition.

Device management data is said to “not satisfy one or more criteria” ifthe entity that processes the device management data with respect to ascan job determines that a restriction associated with the devicemanagement data needs to be enforced. For example, the scan job shouldnot be executed or, if the scan job has already been executed, then thescan data generated therefrom should not be processed according topost-scan processing instructions indicated in the corresponding scanprocess definition.

1. Post-Scan Processing of Device Management Data

In an embodiment, device management data is processed aftercorresponding scan data is performed. Such post-scan processing ofdevice management data may be performed by scan server 140 or a device(not depicted) that is outside of DSM system 1700.

In this embodiment, process 1800 is similar to process 800 of FIG. 8 insome respects. At step 1815, a user provides user authentication data(e.g., a username and password) to scan device 134. At step 1820, scandevice 134 sends the user authentication data to definition server 120.At step 1825, definition server 120 sends data that identifies one ormore scan process definitions to scan device 134, which displays thedata. At step 1830, the user selects one of the listed scan processdefinitions. At step 1835, scan device 134 sends an identifier for therequested scan process definition to definition server 120.

At step 1840, definition server 120 sends the requested scan processdefinition to scan device 134. Definition server 120 also sends devicemanagement data that is associated with the scan process definition. Asindicated previously, the scan process definition may include the devicemanagement data. Alternatively, definition server 120 may send thedevice management data separately from the scan process definition. Atstep 1845, scan device 134 performs a scan operation based on scansettings indicated in the scan process definition.

At step 1850, scan device 134 sends, to scan server 140, scan data thatis generated based on performing the scan operation. Step 1850 alsocomprises sending the device management data to scan server 140.

At step 1855, scan server 140 communicates with definition server 120 tovalidate the scan process definition that was used to perform the scanoperation. Step 1855 is optional.

At step 1860, in response to receiving device management data inassociation with scan data, scan server 140 determines whether any ofthe one or more restrictions indicated in the device management data areapplicable. For example, scan server 140 determines whether scan device134 (i.e., that generated the scan data) was allowed to process the scanprocess definition that was used to generate the scan data. In order tomake this determination, scan server 140 receives scan deviceidentification data that identifies scan device 134. As another example,scan server 140 determines whether one or more storage destinations(e.g., specified by the user at scan device 134 or indicated indestination data of the scan process definition) for the received scandata are allowed based on the device management data.

If scan server 140 determines that no restriction indicated in thedevice management data is applicable, then scan server 140 stores thescan data according to post-scan instructions indicated in thecorresponding scan process definition.

If scan server 140 determines that at least one restriction indicated inthe device management data is applicable, then scan server 140 performsone or more operations. Depending on the restriction, scan server 140may or may not store the scan data. For example, if the restriction isregarding a destination of the scan data (e.g., an email address), thenscan server 140 may send a message to scan device 134 to prompt the userto specify a valid destination (e.g., a different email address). Asanother example, if the restriction is regarding when the scan operationwas performed, then the scan data may not be stored according toinstructions indicated in the corresponding scan process definition.Such operations may include creating and storing (e.g., in a log file)data that indicates that the scan device performed a scan operatingusing an improper scan process definition. In this embodiment, scanserver 140 acts as a single source with which an administrator mayinteract in order to discover which scan jobs were performed contrary todevice management data. If such data was stored at the scan device thatperformed the respective scan operation, then an administrator mighthave to individually check log files of each scan device that theadministrator manages.

Another example operation is sending, to the scan device that generatedthe scan data, a message that an error occurred and that the scan datawill not be processed as the user intended. The message may prompt theuser to select a different scan process definition use that scan processdefinition to perform another scan operation so that the scan datagenerated therefrom is processed as the user intends.

As noted previously, instead of scan server 140 performing the post-scanprocessing of device management data, another device performs post-scanprocessing of device management data. For example, a service executingon a device outside of DSM system 1700 determines that scan data hasbeen generated. The service may detect that scan data has been generatedin one of multiple ways, as described previously. For example, theservice may periodically analyze one or more log files that were createdand stored by scan server 140. As another example, the service maydetect that scan data has been stored at a particular location (e.g., byscan server 140).

The service reads device management data that is stored in associationwith the scan data. If the service determines that the device managementdata satisfies one or more criteria (e.g., if the service determinesthat the device management data includes scan device identificationdata), then the service performs its normal function. If the servicedetermines that the device management data does not include the scandevice identification data, then the service may perform one or moreoperations. For example, the service may create and store data thatindicates that an improper scan process definition was used to generatethe scan data. Additionally, the service may notify an administrator ofDSM system 100, such as by sending, to administrator terminal 110, amessage that indicates information about the scan operation.

2. Pre-Scan Processing of Device Management Data

In an embodiment, device management data is processed before thecorresponding scan operation is performed. The processing of devicemanagement data may be performed by definition server 120 or a scandevice (such as scan device 130).

i) Definition Server Processes Device Management Data

FIG. 19 is a sequence diagram that depicts a process 1900 for enforcingrestrictions device management data prior to performing a scanoperation, in an embodiment. At step 1905, an administrator atadministrator terminal 110 specifies device management data. At step1910, SMC 112 sends the device management data to definition server 120to be stored in association with a scan process definition.

At step 1915, a user provides user identification data (e.g., a usernameand password) to a scan device, such as a scan device 130. At step 1920,the scan device sends, to definition server 120, a request that includesthe user identification data and an identifier that identifies the scandevice.

At step 1925, definition server 120 may first identify one or more scanprocess definitions that are associated with the user identificationdata and then determine whether the device management data associatedwith each identified scan process definition satisfies one or morecriteria. Alternatively, definition server 120 first identifies one ormore sets of device management data that are satisfied and thendetermines whether the scan process definitions that are associated withthe identified one or more sets of device management data are associatedwith the user identification data.

At step 1930, definition server 120 sends data that identifies one ormore scan process definitions to the scan device, which displays thedata.

Alternatively, if definition server 120 determines, based on devicemanagement data, that scan device 134 is restricted from using any scanprocess definition (including those definitions that are associated withuser access right data that identifies the user as authorized to use thescan process definitions) then definition server 120 may send, to scandevice 134, a message that informs the user that no scan processdefinition is available. The message may include one or more reasons forthe unavailability and/or prompt the user to use a different scandevice. The message may even identify one or more other scan devicesthat the user may use.

At step 1935, the user selects one of the listed scan processdefinitions. At step 1940, the scan device sends an identifier for therequested scan process definition to definition server 120.

At step 1945, definition server 120 sends the requested scan processdefinition to scan device 134. Definition server 120 may also send thedevice management data that is associated with the scan processdefinition. Scan device 134 may use the device management data todetermine whether the device management data satisfies one or morecriteria. In this way, both definition server 120 and the scan device(e.g., scan device 130) take part in enforcing restrictions indicated indevice management data. For example, the scan device may enforce one ormore additional restrictions, such as a temporal restriction and/or ascan data recipient restriction.

At step 1950, scan device 134 performs a scan operation using the scansettings indicated in the requested scan process definition.

At step 1955, scan device 134 sends the generated scan data to scanserver 140 for further processing.

II) Scan Device Processes Device Management Data

While definition server 120 processes device management data in process1900, in an alternative embodiment, a scan device (e.g., scan device130) processes device management data.

FIG. 20 is a sequence diagram that depicts a process 2000 for enforcingdevice management data prior to performing a scan operation, in anembodiment. At step 2005, an administrator at administrator terminal 110specifies device management data. At step 2010, SMC 112 sends the devicemanagement data to definition server 120 to be stored in associationwith a scan process definition.

At step 2015, a user provides user identification data (e.g., a usernameand password) to a scan device, such as a scan device 130. At step 2020,scan device 134 sends, to definition server 120, a request that includesthe user identification data.

At step 2025, definition server 120 identifies one or more scan processdefinitions that are associated with the user identification data. Atstep 2030, definition server 120 sends data that identifies one or morescan process definitions to scan device 134, which displays the data.

At step 2035, the user selects one of the listed scan processdefinitions. At step 2040, scan device 134 sends an identifier for therequested scan process definition to definition server 120.

At step 2045, definition server 120 sends the requested scan processdefinition to scan device 134. Definition server 120 also sends thedevice management data that is associated with the scan processdefinition. The scan process definition may include the devicemanagement data.

At step 2050, scan device 134 determines whether the device managementdata satisfies one or more criteria. If so, then, at step 2055, scandevice 134 performs a scan operation using the scan settings indicatedin the requested scan process definition. Process 2000 may then continueby sending, at step 2060, the generated scan data to scan server 140.

If the device management data does not satisfy the one or more criteria,then the scan device does not perform the scan operation using therequested scan process definition. Instead, the scan device may performone or more other operations, such as causing, to be stored, a log entrythat indicates that a user attempted to use a scan process definitionwhose associated device management data did not satisfy one or morecriteria. The scan device may also display, on a user interface, amessage that prompts the user to select a different scan processdefinition.

VII. Delegate Access

In some business environments, it is common for a business executive todelegate a task to another individual within a company. For example, abusiness executive, after traveling for a business trip, provides, to anassistant, receipts for expenses incurred on the business trip. Theassistant scans the receipts and files an expense report for thebusiness executive. The scanned receipts and expense report are sent(e.g., emailed) to an account associated with the business executive.One approach for allowing the assistant access to the businessexecutive's account is to share the executive's username and passwordwith the assistant. However, such an approach is not desirable becausethe likelihood that the business executive's username and password isdiscovered by an unscrupulous person (which may be the assistant)increases greatly.

Another approach is to create multiple similar, but different, scanprocess definitions: at least one for the business executive and atleast one for the assistant. The scan process definition for theassistant will be almost identical to the scan process definition forthe business executive, except there might be differences in that theassistant might not be authorized to modify any of the scan settingsdata or destination data in the scan process definition for theassistant. One downside of this approach is that an administrator needsto create, maintain, and differentiate between all these different, butsimilar, scan process definitions. Any change in one scan processdefinition might necessitate a change in a corresponding scan processdefinition. As user-involvement increases, the likelihood of errors alsoincreases.

A. Access Delegation Data

According to an embodiment, access to a scan process definition isdelegated to one or more users who otherwise would not have access tothe scan process definition. Such one or more users are referred toherein as “delegatees.” Data that identifies delegatees is referred toherein as “delegatee data.”

The one or more users who are indicated in user access right data of ascan process definition are referred to as “delegators.” Data thatidentifies delegators is referred to herein as “delegator data.” Adelegator may not have been involved in authorizing a particular user tobe a delegatee of a scan process definition to which the delegator hasaccess. Instead, an administrator, at administrator terminal 110, maymake the decision(s) on who is a delegatee and, thus, who is adelegator.

Data that is used to determine whether a user is a delegatee of one ormore scan process definitions is referred to herein as “accessdelegation data” with respect to the one or more scan processdefinitions. Depending on the specific implementation, access delegationdata may include both delegatee data and delegator data or onlydelegatee data.

In an embodiment, not only is access delegation data associated with oneor more scan process definitions, access delegation data may beassociated with one or more restrictions. An example restrictionincludes the prohibition of modifying any data (or certain data) withina scan process definition. For example, while a delegator is allowed tomodify a particular scan setting indicated in the scan settings data ofa scan process definition, a delegatee is not allowed to modify theparticular scan setting (or any scan setting).

Another example restriction is the prohibition of adding anotherdestination to which scan data (that is generated based on thecorresponding scan process definition) may be sent. For example, while adelegator may be allowed to add one or more destinations for aparticular scan job, a delegatee is not allowed to add any destinationto which scan data is to be sent. A related example restriction is theprohibition of adding certain destinations, such as an email addressoutside of a company's domain or a network folder that does not havecertain access rights.

Another example restriction is when a scan operation based on thecorresponding scan process definition may be performed. For example,while a delegator may be allowed to use a scan process definition at anytime of the day, a delegatee of the scan process definition may only beallowed to use the scan process definition at certain times of the dayand/or certain days of the week

1. Stored in Scan Process Definition

In an embodiment, a scan process definition includes both user accessrights data and access delegation data. For example, a businessexecutive may be identified in the user access rights data portion of ascan process definition while an assistant of the executive isidentified in the access delegation data portion of the scan processdefinition. Thus, each user in the set of one or more users who areidentified in the user access rights data may be different than eachuser that is identified in the user access rights data portion.

In an embodiment, access delegation data is specified in an extensionpoint of a scan process definition, wherein the extension point is anoptional portion of the scan process definition.

FIG. 21 depicts an example scan process definition that includes accessdelegation data, in an embodiment. In this example, access delegationdata is included in multiple IHV “delegate” elements. Each delegateelement includes: (1) a login-user element that indicates a user thathas logged into a scan device and is seeking one or more scan processdefinitions; (2) a delegate-from element that indicates one or moredelegators; and (3) an access right element that indicates one or moreaccess rights that the delegatee has with respect to the scan processdefinition. In this example, both delegate elements indicate twodelegators. Also, both delegate elements indicate that the correspondingdelegatee has read-only rights to the scan process definition and is notallowed to modify the corresponding scan process definition. Such aprohibition may also include not being allowed to specify an additional(or different) destination to which scan data (that will be generatedbased on the scan process definition) will be sent.

In an embodiment, an administrator at administrator terminal 110 usesSMC 112 to specify access delegation data. Access delegation data may beformatted in a particular way, such as in XML. Alternatively, accessdelegation data may have very little formatting, even if the accessdelegation data is without a certain element of an XML document.

2. Stored Separate from Scan Process Definition

In an alternative embodiment, access delegation data is storedseparately from any scan process definition. In such an embodiment,access delegation data includes one or more entries, where each entryincludes (1) delegatee data that identifies one or more delegatees and(2) delegator data that identifies one or more delegators.

In a related embodiment, one or more entries in the mapping includedefinition identification data that identifies one or more scan processdefinitions. The definition identification data is used to allow only astrict subset of scan process definitions that a delegator is allowed toaccess to be “shared” with a delegatee. In this way, a delegator doesnot have to “share” all scan process definitions to which the delegatorhas access. For example, user1 may have access to scan processdefinitions A, B, and C while user2 does not have access to any ofdefinitions A, B, or C. Later, user2 is identified as a delegatee ofuser1 in access delegation data. However, the access delegation data mayfurther indicate that user2 is only a delegatee of user1 with respect toscan process definition B. Thus, while user2 may be able to use scanprocess definition B when initiating a scan operation, user2 may not usescan process definitions A or C when initiating a scan operation.

In one approach, approach, definition server 120 stores the accessdelegation data. In an alternative approach, a scan device (e.g., scandevice 130) stores access delegation data. Both approaches, andvariations thereof, are described in more detail as follows.

B. Processing Access Delegation Data

1. Definition Server Enforces Access Delegation Data

FIG. 22 is sequence diagram that depicts a process 2200 that involvesdefinition server 120 enforcing access delegation data, in anembodiment. At step 2210, an administrator at administrator terminal 110uses SMC 112 to specify access delegation data for one or more scanprocess definitions. As noted previously, the access delegation data maybe specified within the one or more scan process definitions or may bespecified separately therefrom but in association with the one or morescan process definitions.

At step 2220, SMC 112 causes the access delegation data to be stored atdefinition server 120.

At step 2230, a user provides user identification data at scan device130.

At step 2240, scan device 130 sends, to definition server 120, a requestfor scan process definitions. The request includes the useridentification data.

At step 2250, definition server 120 identifies one or more scan processdefinitions based on the user identification data and/or the accessdelegation data. For example, in the scenario where the accessdelegation data is stored within one or more scan process definitions,definition server 120 analyzes each scan process definition of multiplescan process definitions. For each scan process definition, definitionserver 120 determines whether the user identification data is includedin the user access right data and, if not in the user access right data,whether the user identification data is included in the accessdelegation data.

As another example, in the scenario where the access delegation data isstored separately from any scan process definition, definition server120 determines whether the user identification data is included in theuser access right data of each scan process definition and alsodetermines whether any delegatee data of the access delegation dataincludes the user identification data. The latter determination mayinvolve determining, for each mapping (if multiple mappings betweendelegatee data and delegator data exist), whether the delegatee data ofthat mapping includes the user identification data. If so, thendefinition server 120 identifies the matching delegator data, whichidentifies one or more delegators. Definition server 120 then determineswhether any scan process definition includes user access right data thatidentifies any of the one or more delegators.

In either scenario, access delegation data may indicate one or morerestrictions with respect to the corresponding scan processdefinition(s), such as the prohibition to modify any scan settings inthe scan process definition(s) or the prohibition to add a destinationfor not-yet-generated scan data.

At step 2260, definition server 120 sends, to scan device 130, data thatidentifies one or more scan process definitions. In some situations,definition server 120 might identify two scan process definitions: one“normal” scan process definition that includes user access right datathat includes the user identification data and another scan processdefinition that is associated with access delegation data that includesthe user identification data.

Step 2260 may involve sending the entirety of the identified one or morescan process definitions. Alternatively, step 2260 involves sending onlydata that identifies the one or more scan process definitions.

At step 2270, a user selects one of the scan process definitionsidentified in the received data. Step 2270 may have involved scan device130, based on the received data, causing one or more graphical userinterface objects to be displayed, one for each scan process definitionidentified in the received data.

At step 2280, scan device 130 sends, to definition server 120,definition identification data that identifies the selected scan processdefinition. Definition server 120 may determine whether the selectedscan process definition is one that includes user access right data thatidentifies the user or is one that was identified by definition server120 based on access delegation data. If the latter, definition server120 may determine whether any restrictions should be associated with thescan process definition when scan device 130 processes the scan processdefinition. If so, then definition server 120 ensures that scan device130 enforces the restriction(s). For example, definition server 120 maymodify scan settings data within the scan process definition or maymodify destination data within the scan process definition.

At step 2290, definition server 120 sends the selected scan processdefinition to scan device 130. At step 2295, scan device 130 performs ascan operation based on the scan settings data indicated in the selectedscan process definition.

2. Scan Device Enforces Access Delegation Data

In an embodiment, instead of definition server 120 enforcing the accessdelegation data, a scan device (e.g., scan device 130) enforces theaccess delegation data. The scan device may use the access delegation inone of two ways: either before sending a request for definitions todefinition server 120 or after sending a request for definitions todefinition server 120.

FIG. 23 is a sequence diagram that depicts a process 2300 for enforcingaccess delegation data at a scan device, in an embodiment. Process 2300is directed to the approach where scan device 130 enforces the accessdelegation data after sending a request for definitions to definitionserver 120.

At step 2310, an administrator at administrator terminal 110 uses SMC112 to specify access delegation data. The access delegation data isspecified separately from any scan process definition. The accessdelegation data includes a set of one or more mappings, where eachmapping associates delegatee data with delegator data. One or more ofthe mappings in the set may also indicate the one or more scan processdefinitions.

At step 2320, SMC 112 causes the access delegation data to be stored atscan device 130.

At step 2330, a user provides user identification data at scan device130.

At step 2340, scan device 130 sends, to definition server 120, a requestfor scan process definitions.

At step 2350, definition server 120 sends multiple (e.g., all) scanprocess definitions that it stores.

At step 2360, scan device 130 identifies, within the access delegationdata, one or more delegators that are associated with a delegatee thatis identified by the user identification data.

At step 2370, scan device 130 analyzes each scan process definitionusing the user identification data and delegator data that identifiesthe one or more delegators identified in step 2360. As a result of step2370, scan device 130 identifies one or more scan process definitions.If the one or more scan process definitions include multiple scanprocess definitions, then one of the scan process definitions may haveincluded the user identification data in the user access right dataportion and another of the scan process definitions may have includeddelegator data in the user access right data portion.

At step 2380, scan device 130 causes information about the one or moreidentified scan process definitions to be displayed to the user.

At step 2390, scan device 130 receives, from the user, input thatindicates a selection one of the one or more identified scan processdefinitions.

At step 2395, scan device 130 performs a scan operation based on theselected scan process definition. If the user selects a scan processdefinition that was only selected based on the access delegation dataand the access delegation data indicated one or more restrictions withrespect to the scan process definition, then step 2395 may involve scandevice 130 enforcing the one or more restrictions.

FIG. 24 is a sequence diagram that depicts a process 2400 for enforcingaccess delegation data at a scan device, in an embodiment. Process 2400is directed to an approach where scan device 130 enforces the accessdelegation data before sending a request for definitions to definitionserver 120.

At step 2405, an administrator at administrator terminal 110 uses SMC112 to specify access delegation data. The access delegation data isspecified separately from any scan process definition. The accessdelegation data includes a set of one or more mappings, where eachmapping associates delegatee data with delegator data. One or more ofthe mappings in the set may also indicate the one or more scan processdefinitions.

At step 2410, SMC 112 causes the access delegation data to be stored atscan device 130.

At step 2415, a user provides user identification data at scan device130.

At step 2420, scan device 130 analyzes the access delegation data basedon the user identification data. Scan device 130 determines whether theuser identification data is found within or is otherwise associated withdelegatee data in the access delegation data. If so, then scan device130 identifies delegator data that is associated with the identifieddelegatee data.

At step 2425, scan device 130 sends, to definition server 120, a requestfor scan process definitions. The request includes the useridentification data and any delegator data that indicates a set of oneor more delegators. If, within the access delegation data, the delegatordata is associated with one or more scan process definitions, then scandevice 130 also sends definition identification data that identifies theone or more scan process definitions.

At step 2430, definition server 120 analyzes multiple (e.g., all) scanprocess definitions that it stores and determines whether the useraccess right data of each scan process definition includes the useridentification data or data that identifies a delegator indicated in thedelegator data received from scan device 130.

At step 2435, definition server 120 sends data that identifies one ormore scan process definitions that include user access right data thatincludes either the user identification data or delegator data thatidentifies one of the one or more delegators identified in the delegatordata received from scan device 130. The data sent to scan device 130 mayinclude the one or more identified scan process definitions or mayexclude the one or more identified scan process definitions.

At step 2440, scan device 130 causes information about the one or moreidentified scan process definitions to be displayed to the user.

At step 2445, scan device 130 receives, from the user, input thatindicates a selection one of the one or more identified scan processdefinitions.

At step 2450, scan device 130 sends, to definition server 120, a requestfor the selected scan process definition.

At step 2455, definition server 120 sends the requested scan processdefinition to scan device. Steps 2450 and 2455 are not necessary ifdefinition server 120 already sent the scan process definition in step2435.

At step 2460, scan device 130 performs a scan operation based on theselected scan process definition. Step 2460 may comprise identifying oneor more restrictions associated with the delegatee, which is the user ofscan device 130 in this scenario. The one or more restrictions may beindicated in the requested scan process definition. Additionally oralternatively, the one or more restrictions may be indicated in theaccess delegation data. If there are one or more restrictions, then scandevice 130 enforces the restriction(s) before and/or after performingthe scan operation.

VIII. Implementation Mechanisms

According to one embodiment, the approaches described herein areimplemented by one or more special-purpose computing devices. Thespecial-purpose computing devices may be hard-wired to perform theapproaches, or may include digital electronic devices such as one ormore application-specific integrated circuits (ASICs) or fieldprogrammable gate arrays (FPGAs) that are persistently programmed toperform the approaches, or may include one or more general purposehardware processors programmed to perform the approaches pursuant toprogram instructions in firmware, memory, other storage, or acombination. Such special-purpose computing devices may also combinecustom hard-wired logic, ASICs, or FPGAs with custom programming toaccomplish the approaches. The special-purpose computing devices may bedesktop computer systems, portable computer systems, handheld devices,networking devices or any other device that incorporates hard-wiredand/or program logic to implement the approaches.

FIG. 25 is a block diagram that depicts an example computer system 2500upon which embodiments may be implemented. Computer system 2500 includesa bus 2502 or other communication mechanism for communicatinginformation, and a processor 2504 coupled with bus 2502 for processinginformation. Computer system 2500 also includes a main memory 2506, suchas a random access memory (RAM) or other dynamic storage device, coupledto bus 2502 for storing information and instructions to be executed byprocessor 2504. Main memory 2506 also may be used for storing temporaryvariables or other intermediate information during execution ofinstructions to be executed by processor 2504. Computer system 2500further includes a read only memory (ROM) 2508 or other static storagedevice coupled to bus 2502 for storing static information andinstructions for processor 2504. A storage device 2510, such as amagnetic disk or optical disk, is provided and coupled to bus 2502 forstoring information and instructions.

Computer system 2500 may be coupled via bus 2502 to a display 2512, suchas a cathode ray tube (CRT), for displaying information to a computeruser. Although bus 2502 is illustrated as a single bus, bus 2502 maycomprise one or more buses. For example, bus 2502 may include withoutlimitation a control bus by which processor 2504 controls other deviceswithin computer system 2500, an address bus by which processor 2504specifies memory locations of instructions for execution, or any othertype of bus for transferring data or signals between components ofcomputer system 2500.

An input device 2514, including alphanumeric and other keys, is coupledto bus 2502 for communicating information and command selections toprocessor 2504. Another type of user input device is cursor control2516, such as a mouse, a trackball, or cursor direction keys forcommunicating direction information and command selections to processor2504 and for controlling cursor movement on display 2512. This inputdevice typically has two degrees of freedom in two axes, a first axis(e.g., x) and a second axis (e.g., y), that allows the device to specifypositions in a plane.

Computer system 2500 may implement the approaches described herein usingcustomized hard-wired logic, one or more ASICs or FPGAs, firmware and/orprogram logic or computer software which, in combination with thecomputer system, causes or programs computer system 2500 to be aspecial-purpose machine. According to one embodiment, those approachesare performed by computer system 2500 in response to processor 2504executing one or more sequences of one or more instructions contained inmain memory 2506. Such instructions may be read into main memory 2506from another computer-readable medium, such as storage device 2510.Execution of the sequences of instructions contained in main memory 2506causes processor 2504 to perform the process steps described herein. Inalternative embodiments, hard-wired circuitry may be used in place of orin combination with software instructions to implement the embodiments.Thus, embodiments are not limited to any specific combination ofhardware circuitry and software.

The term “computer-readable medium” as used herein refers to any mediumthat participates in providing data that causes a computer to operate ina specific manner. In an embodiment implemented using computer system2500, various computer-readable media are involved, for example, inproviding instructions to processor 2504 for execution. Such a mediummay take many forms, including but not limited to, non-volatile mediaand volatile media. Non-volatile media includes, for example, optical ormagnetic disks, such as storage device 2510. Volatile media includesdynamic memory, such as main memory 2506. Common forms ofcomputer-readable media include, for example, a floppy disk, a flexibledisk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM,any other optical medium, a RAM, a PROM, and EPROM, a FLASH-EPROM, anyother memory chip or memory cartridge, or any other medium from which acomputer can read.

Various forms of computer-readable media may be involved in carrying oneor more sequences of one or more instructions to processor 2504 forexecution. For example, the instructions may initially be carried on amagnetic disk of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 2500 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 2502. Bus 2502 carries the data tomain memory 2506, from which processor 2504 retrieves and executes theinstructions. The instructions received by main memory 2506 mayoptionally be stored on storage device 2510 either before or afterexecution by processor 2504.

Computer system 2500 also includes a communication interface 2518coupled to bus 2502. Communication interface 2518 provides a two-waydata communication coupling to a network link 2520 that is connected toa local network 2522. For example, communication interface 2518 may bean integrated services digital network (ISDN) card or a modem to providea data communication connection to a corresponding type of telephoneline. As another example, communication interface 2518 may be a localarea network (LAN) card to provide a data communication connection to acompatible LAN. Wireless links may also be implemented. In any suchimplementation, communication interface 2518 sends and receiveselectrical, electromagnetic or optical signals that carry digital datastreams representing various types of information.

Network link 2520 typically provides data communication through one ormore networks to other data devices. For example, network link 2520 mayprovide a connection through local network 2522 to a host computer 2524or to data equipment operated by an Internet Service Provider (ISP)2526. ISP 2526 in turn provides data communication services through theworld wide packet data communication network now commonly referred to asthe “Internet” 2528. Local network 2522 and Internet 2528 both useelectrical, electromagnetic or optical signals that carry digital datastreams.

Computer system 2500 can send messages and receive data, includingprogram code, through the network(s), network link 2520 andcommunication interface 2518. In the Internet example, a server 2530might transmit a requested code for an application program throughInternet 2528, ISP 2526, local network 2522 and communication interface2518. The received code may be executed by processor 2504 as it isreceived, and/or stored in storage device 2510, or other non-volatilestorage for later execution.

In the foregoing specification, embodiments have been described withreference to numerous specific details that may vary from implementationto implementation. Thus, the sole and exclusive indicator of what is,and is intended by the applicants to be, the invention is the set ofclaims that issue from this application, in the specific form in whichsuch claims issue, including any subsequent correction. Hence, nolimitation, element, property, feature, advantage or attribute that isnot expressly recited in a claim should limit the scope of such claim inany way. The specification and drawings are, accordingly, to be regardedin an illustrative rather than a restrictive sense.

What is claimed is:
 1. One or more computer-readable media storinginstructions which, when processed by one or more processors, cause:generating, on an administrator device that has access rights to adefinition server, a graphical user interface that allows a user to:specify extension data, generate a scan process definition that includesat least the extension data, scan settings data, and destination datathat indicates one or more destinations to which scan data generated,based upon the scan settings data, on a scan device that is differentthan the administrator device, will be sent, and cause the scan processdefinition to be stored on the definition server, wherein the extensiondata specifies one or more of post-scan processing to be performed onthe scan data or device settings to be used by the scan device duringscanning or printing.
 2. The one or more computer-readable media ofclaim 1, wherein: the scan process definition is represented as XMLdata, and the extension data is included in the XML data as anindividual hardware vendor (IHV) extension point data.
 3. The one ormore computer-readable media of claim 1, wherein the extension dataincludes data that: (a) defines how a graphical user interface at thescan device will be displayed; (b) indicates an external source to whicha request for information is to be sent by the scan device; or (c) willbe stored in association with the scan data.
 4. The one or morecomputer-readable media of claim 1, wherein the graphical user interfacefurther allows a user to specify the scan settings data and thedestination data.
 5. The one or more computer-readable media of claim 1,wherein the definition server executes on a computing device that isdifferent than the administrator device.
 6. The one or morecomputer-readable media of claim 1, wherein the instructions, whenexecuted by the one or more processors, further cause: displaying a listof names of a plurality of scan process definitions; in response toreceiving first input that selects a name of a particular scan processdefinition of the plurality of scan process definitions, retrieving theparticular scan process definition from the definition server; inresponse to receiving second input, editing the particular scan processdefinition based on the second input to generate a modified scan processdefinition; after generating the modified scan process definition,causing the modified scan process definition to be stored on thedefinition server.
 7. The one or more computer-readable media of claim1, wherein the instructions, when executed by the one or moreprocessors, further cause, prior to generating the graphical userinterface: transmitting a discovery request over a network; receiving,as a response to the discovery request, information about one or morescan devices; wherein the information includes two or more of a statusof a particular scan device, one or more capabilities of the particularscan device, or device configuration information of the particular scandevice.
 8. A method comprising: generating, on an administrator devicethat has access rights to a definition server, a graphical userinterface that allows a user to: specify extension data, generate a scanprocess definition that includes at least the extension data, scansettings data, and destination data that indicates one or moredestinations to which scan data generated, based upon the scan settingsdata, on a scan device that is different than the administrator device,will be sent, and cause the scan process definition to be stored on thedefinition server, wherein the extension data specifies one or more ofpost-scan processing to be performed on the scan data or device settingsto be used by the scan device during scanning or printing.
 9. The methodof claim 8, wherein: the scan process definition is represented as XMLdata, and the extension data is included in the XML data as anindividual hardware vendor (IHV) extension point data.
 10. The method ofclaim 8, wherein the extension data includes data that: (a) defines howa graphical user interface at the scan device will be displayed; (b)indicates an external source to which a request for information is to besent by the scan device; or (c) will be stored in association with thescan data.
 11. The method of claim 8, wherein the graphical userinterface further allows a user to specify the scan settings data andthe destination data.
 12. The method of claim 8, wherein the definitionserver executes on a computing device that is different than theadministrator device.
 13. The method of claim 8, further comprising:displaying a list of names of a plurality of scan process definitions;in response to receiving first input that selects a name of a particularscan process definition of the plurality of scan process definitions,retrieving the particular scan process definition from the definitionserver; in response to receiving second input, editing the particularscan process definition based on the second input to generate a modifiedscan process definition; after generating the modified scan processdefinition, causing the modified scan process definition to be stored onthe definition server.
 14. The method of claim 8, further comprising,prior to generating the graphical user interface: transmitting adiscovery request over a network; receiving, as a response to thediscovery request, information about one or more scan devices; whereinthe information includes two or more of a status of a particular scandevice, one or more capabilities of the particular scan device, ordevice configuration information of the particular scan device.
 15. Anapparatus comprising: one or more processors; one or more storage mediastoring instructions which, when executed by the one or more processors,further cause: generating, on an administrator device that has accessrights to a definition server, a graphical user interface that allows auser to: specify extension data, generate a scan process definition thatincludes at least the extension data, scan settings data, anddestination data that indicates one or more destinations to which scandata generated, based upon the scan settings data, on a scan device thatis different than the administrator device, will be sent, and cause thescan process definition to be stored on the definition server, whereinthe extension data specifies one or more of post-scan processing to beperformed on the scan data or device settings to be used by the scandevice during scanning or printing.
 16. The apparatus of claim 15,wherein: the scan process definition is represented as XML data, and theextension data is included in the XML data as an individual hardwarevendor (IHV) extension point data.
 17. The apparatus of claim 15,wherein the extension data includes data that: (a) defines how agraphical user interface at the scan device will be displayed; (b)indicates an external source to which a request for information is to besent by the scan device; or (c) will be stored in association with thescan data.
 18. The apparatus of claim 15, wherein the graphical userinterface further allows a user to specify the scan settings data andthe destination data.
 19. The apparatus of claim 15, wherein thedefinition server executes on a computing device that is different thanthe administrator device.
 20. The apparatus of claim 15, wherein theinstructions, when executed by the one or more processors, furthercause: displaying a list of names of a plurality of scan processdefinitions; in response to receiving first input that selects a name ofa particular scan process definition of the plurality of scan processdefinitions, retrieving the particular scan process definition from thedefinition server; in response to receiving second input, editing theparticular scan process definition based on the second input to generatea modified scan process definition; after generating the modified scanprocess definition, causing the modified scan process definition to bestored on the definition server.